geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From upthewatersp...@apache.org
Subject [geode] 01/07: GEODE-5424: Changing all awaitility calls to use consistent timings
Date Fri, 19 Oct 2018 00:01:13 GMT
This is an automated email from the ASF dual-hosted git repository.

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

commit 239c532f8338c9d8e9bb8062fab9fadd3376ec73
Author: Dan Smith <upthewaterspout@apache.org>
AuthorDate: Thu Oct 4 15:38:58 2018 -0700

    GEODE-5424: Changing all awaitility calls to use consistent timings
    
    We have a lot of Awaitility calls in our tests. Each test was picking
    its own timeout. That lead to some tests picking too small of a timeout
    and failing spuriously.
    
    With this change, all tests will use a new factory,
    GeodeAwaility.await(), rather than Awaitility.await(). This new factory
    sets a default timeout of 5 minutes. It also sets a sensible pollDelay
    and pollInterval.
    
    The custom timeouts used in all tests have been removed, in favor of
    this new factory, except for a couple of tests that had waits greater
    than 5 minutes.
---
 .../cli/commands/StopLocatorCommandDUnitTest.java  |   7 +-
 .../tests/GenericAppServerClientServerTest.java    |   5 +-
 .../tools/pulse/PulseSecurityIntegrationTest.java  |   5 +-
 .../jdbc/JdbcAsyncWriterIntegrationTest.java       |   5 +-
 .../geode/connectors/jdbc/JdbcDistributedTest.java |  11 +-
 .../test/junit/rules/MySqlConnectionRule.java      |   5 +-
 .../junit/rules/SqlDatabaseConnectionRule.java     |   5 +-
 .../cache/RegionExpirationDistributedTest.java     |  12 +-
 .../internal/AutoConnectionSourceDUnitTest.java    |  14 +-
 .../internal/LocatorLoadBalancingDUnitTest.java    |  26 ++-
 .../dunit/QueryDataInconsistencyDUnitTest.java     |  38 ++--
 .../query/dunit/QueryIndexUsingXMLDUnitTest.java   |   8 +-
 .../cache/query/dunit/QueryUsingPoolDUnitTest.java |   5 +-
 .../InitializeIndexEntryDestroyQueryDUnitTest.java |  11 +-
 .../geode/cache/snapshot/SnapshotDUnitTest.java    |   5 +-
 .../geode/cache30/ClientMembershipDUnitTest.java   | 194 ++++++++++-----------
 .../geode/cache30/ClientServerCCEDUnitTest.java    |   8 +-
 .../geode/cache30/DiskRegionDistributedTest.java   |  10 +-
 .../cache30/DistributedAckRegionCCEDUnitTest.java  |   5 +-
 .../cache30/PRBucketSynchronizationDUnitTest.java  |   4 +-
 .../geode/cache30/RRSynchronizationDUnitTest.java  |   4 +-
 .../apache/geode/cache30/ReconnectDUnitTest.java   |   3 +-
 .../cache30/ReconnectWithCacheXMLDUnitTest.java    |   5 +-
 .../geode/cache30/RegionReliabilityTestCase.java   |   7 +-
 .../DistributedLockServiceDUnitTest.java           |   7 +-
 .../distributed/DistributedMemberDUnitTest.java    |   7 +-
 .../distributed/GrantorFailoverDUnitTest.java      |   7 +-
 .../apache/geode/distributed/LocatorDUnitTest.java |  40 ++---
 .../geode/distributed/ServerLauncherDUnitTest.java |   5 +-
 .../ClusterDistributionManagerDUnitTest.java       |  14 +-
 ...lusterDistributionManagerForAdminDUnitTest.java |  10 +-
 .../internal/DistributionAdvisorDUnitTest.java     |  11 +-
 .../internal/ElderMemberDistributedTest.java       |   7 +-
 .../deadlock/GemFireDeadlockDetectorDUnitTest.java |   8 +-
 .../locks/DLockServiceCharacterizationTests.java   |  14 +-
 .../internal/cache/CacheAdvisorDUnitTest.java      |   6 +-
 ...eanupFailedInitWithDiskFilesRegressionTest.java |   5 +-
 .../ClearDuringNetSearchOplogRegressionTest.java   |   5 +-
 .../cache/ClientServerTransactionDUnitTest.java    |  14 +-
 ...ntServerTransactionFailoverDistributedTest.java |   5 +-
 ...overWithMixedVersionServersDistributedTest.java |   9 +-
 .../EntriesDoNotExpireDuringGiiRegressionTest.java |   5 +-
 ...FireAndForgetFunctionOnAllServersDUnitTest.java |  17 +-
 .../internal/cache/FixedPRSinglehopDUnitTest.java  |   7 +-
 .../PRAccessorWithOverflowRegressionTest.java      |   5 +-
 .../PREntryIdleExpirationDistributedTest.java      |   6 +-
 .../PartitionedRegionCacheCloseDUnitTest.java      |   5 +-
 .../cache/PartitionedRegionCreationDUnitTest.java  |   4 +-
 .../cache/PartitionedRegionDestroyDUnitTest.java   |   5 +-
 ...itionedRegionHAFailureAndRecoveryDUnitTest.java |   5 +-
 ...edRegionLowBucketRedundancyDistributedTest.java |   7 +-
 .../cache/PartitionedRegionSingleHopDUnitTest.java |  35 ++--
 .../cache/PartitionedRegionStatsDUnitTest.java     |   5 +-
 .../cache/PersistentRegionRecoveryDUnitTest.java   |   7 +-
 .../PersistentRegionTransactionDUnitTest.java      |   5 +-
 ...eplicateEntryIdleExpirationDistributedTest.java |  14 +-
 .../internal/cache/SingleHopStatsDUnitTest.java    |   7 +-
 .../backup/IncrementalBackupDistributedTest.java   |   6 +-
 .../PrepareAndFinishBackupDistributedTest.java     |   4 +-
 .../cache/event/EventTrackerDUnitTest.java         |   6 +-
 .../execute/SingleHopGetAllPutAllDUnitTest.java    |   7 +-
 .../cache/ha/EventIdOptimizationDUnitTest.java     |   5 +-
 .../cache/ha/HARQueueNewImplDUnitTest.java         |   7 +-
 .../internal/cache/ha/HARegionQueueDUnitTest.java  |  11 +-
 .../ha/HARegionQueueExpiryRegressionTest.java      |   5 +-
 .../cache/ha/HARegionQueueSizeRegressionTest.java  |   9 +-
 .../HARegionQueueThreadIdExpiryRegressionTest.java |   5 +-
 .../internal/cache/ha/HASlowReceiverDUnitTest.java |   7 +-
 .../ha/PreferSerializedHARegionQueueTest.java      |   7 +-
 .../cache/locks/TXLockServiceDUnitTest.java        |  11 +-
 ...BucketCreationCrashCompletesRegressionTest.java |   5 +-
 ...RDiskConflictWithColocationDistributedTest.java |   4 +-
 ...sistentColocatedPartitionedRegionDUnitTest.java |  18 +-
 ...PersistentPartitionedRegionDistributedTest.java |  14 +-
 .../PersistentPartitionedRegionRegressionTest.java |  10 +-
 ...eueRemovalMessageProcessingDistributedTest.java |   9 +-
 .../cache/partitioned/ShutdownAllDUnitTest.java    |   8 +-
 .../AcceptorImplClientQueueDistributedTest.java    |   5 +-
 .../cache/tier/sockets/AcceptorImplDUnitTest.java  |  15 +-
 ...entDestroyRegionNotificationRegressionTest.java |   7 +-
 .../sockets/ClientInterestNotifyDUnitTest.java     |   5 +-
 .../ClientProxyWithDeltaDistributedTest.java       |   7 +-
 .../ClientServerForceInvalidateDUnitTest.java      |   8 +-
 .../tier/sockets/ClientServerMiscDUnitTest.java    |   8 +-
 .../ClientWithInterestFailoverDistributedTest.java |   7 +-
 .../DataSerializerPropagationDUnitTest.java        |   7 +-
 .../sockets/DurableClientQueueSizeDUnitTest.java   |   5 +-
 .../GetConnectedServerCountRegressionTest.java     |   5 +-
 .../cache/tier/sockets/HABug36738DUnitTest.java    |   5 +-
 .../HARegionQueueStatsCloseRegressionTest.java     |   5 +-
 .../sockets/HAStartupAndFailoverDUnitTest.java     |   5 +-
 .../sockets/RedundancyLevelPart1DUnitTest.java     |   9 +-
 .../sockets/RedundancyLevelPart2DUnitTest.java     |   9 +-
 .../tier/sockets/RedundancyLevelTestBase.java      |  24 ++-
 .../sockets/RegisterInterestDistributedTest.java   |  21 ++-
 ...nterestOnServerWithoutRegionRegressionTest.java |   5 +-
 ...isterInterestServerMetaDataDistributedTest.java |   7 +-
 .../tier/sockets/UpdatePropagationDUnitTest.java   |   9 +-
 .../cache/versions/TombstoneDUnitTest.java         |   6 +-
 .../AsyncEventListenerDistributedTest.java         |  11 +-
 ...ventListenerWithCacheLoaderDistributedTest.java |   5 +-
 ...syncEventListenerWithFilterDistributedTest.java |   5 +-
 ...oncurrentAsyncEventListenerDistributedTest.java |   9 +-
 .../ParallelAsyncEventListenerDistributedTest.java |  17 +-
 .../SerialEventListenerDistributedTest.java        |   7 +-
 .../internal/jta/ClientServerJTADUnitTest.java     |   6 +-
 .../ClientServerJTAFailoverDistributedTest.java    |   5 +-
 .../offheap/OutOfOffHeapMemoryDUnitTest.java       |  11 +-
 .../statistics/StatisticsDistributedTest.java      |  13 +-
 .../geode/internal/tcp/TCPConduitDUnitTest.java    |   6 +-
 .../geode/management/CacheManagementDUnitTest.java |  23 +--
 .../management/ClientHealthStatsDUnitTest.java     |   4 +-
 .../management/CompositeTypeTestDUnitTest.java     |  10 +-
 .../geode/management/DLockManagementDUnitTest.java |  22 +--
 .../geode/management/DiskManagementDUnitTest.java  |  11 +-
 .../management/DistributedSystemDUnitTest.java     |  26 ++-
 .../management/JMXMBeanReconnectDUnitTest.java     |   8 +-
 .../management/LocatorManagementDUnitTest.java     |   7 +-
 .../management/MemberMBeanAttributesDUnitTest.java |   5 +-
 .../management/OffHeapManagementDUnitTest.java     |   5 +-
 .../geode/management/QueryDataDUnitTest.java       |  10 +-
 .../management/RegionManagementDUnitTest.java      |  12 +-
 ...niversalMembershipListenerAdapterDUnitTest.java |  17 +-
 .../stats/DistributedSystemStatsDUnitTest.java     |  11 +-
 .../MBeanFederationErrorPathDUnitTest.java         |   5 +-
 .../commands/DeployCommandRedeployDUnitTest.java   |   5 +-
 .../ExecuteFunctionCommandSecurityTest.java        |   5 +-
 .../cli/commands/RebalanceCommandDUnitTest.java    |   5 +-
 .../cli/commands/RemoveCommandJsonDUnitTest.java   |   5 +-
 .../cli/commands/ShowDeadlockDUnitTest.java        |   4 +-
 .../cli/commands/ShowMetricsDUnitTest.java         |  11 +-
 .../commands/ShowMissingDiskStoresDUnitTest.java   |   6 +-
 .../cli/util/MergeLogsDistributedTest.java         |  12 +-
 .../ClusterConfigLocatorRestartDUnitTest.java      |  13 +-
 ...urationPersistenceServiceUsingDirDUnitTest.java |   7 +-
 .../internal/pulse/TestClientIdsDUnitTest.java     |   7 +-
 .../internal/pulse/TestFunctionsDUnitTest.java     |  20 +--
 .../internal/security/MultiGfshDUnitTest.java      |   5 +-
 ...onUsingLegacySecurityWithFailoverDUnitTest.java |   2 +-
 .../PDXGfshPostProcessorOnRemoteServerTest.java    |   5 +-
 .../geode/security/PDXPostProcessorDUnitTest.java  |   5 +-
 .../apache/geode/TXExpirationIntegrationTest.java  |  13 +-
 .../ConcurrentRegionOperationIntegrationTest.java  |  11 +-
 .../cache/RegionExpirationIntegrationTest.java     |   6 +-
 ...ncEventQueueEvictionAndExpirationJUnitTest.java |  77 ++++----
 .../AutoConnectionSourceImplJUnitTest.java         |  17 +-
 ...opClientExecutorWithLoggingIntegrationTest.java |   5 +-
 .../pooling/ConnectionManagerJUnitTest.java        |   7 +-
 .../geode/cache/snapshot/WanSnapshotJUnitTest.java |   5 +-
 .../ShorteningExpirationTimeRegressionTest.java    |   7 +-
 .../distributed/LauncherIntegrationTestCase.java   |  10 +-
 .../LauncherMemberMXBeanIntegrationTest.java       |   4 +-
 .../LocatorLauncherIntegrationTestCase.java        |   4 +-
 ...catorLauncherJmxManagerLocalRegressionTest.java |   5 +-
 .../LocatorLauncherRemoteIntegrationTestCase.java  |   6 +-
 .../ServerLauncherIntegrationTestCase.java         |   4 +-
 .../ServerLauncherRemoteIntegrationTestCase.java   |   6 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |  47 ++---
 .../gms/membership/GMSJoinLeaveJUnitTest.java      |  27 ++-
 .../geode/internal/JarDeployerDeadlockTest.java    |   5 +-
 ...edThreadPoolExecutorWithKeepAliveJUnitTest.java |   8 +-
 ...ionCreateNotBeforeRegionInitRegressionTest.java |   5 +-
 ...precatedCacheServerLauncherIntegrationTest.java |  19 +-
 .../geode/internal/cache/DiskOldAPIsJUnitTest.java |   4 +-
 .../internal/cache/DiskRegRecoveryJUnitTest.java   |   6 +-
 .../cache/DiskRegionAsyncRecoveryJUnitTest.java    |   3 +-
 .../DiskRegionCompactorCloseIntegrationTest.java   |   4 +-
 .../geode/internal/cache/DiskRegionJUnitTest.java  |   8 +-
 .../cache/DiskStoreImplIntegrationTest.java        |   9 +-
 .../internal/cache/InterruptDiskJUnitTest.java     |   4 +-
 .../MultipleOplogsRollingFeatureJUnitTest.java     |   8 +-
 .../geode/internal/cache/OplogJUnitTest.java       |  18 +-
 .../cache/ha/BlockingHARegionQueueJUnitTest.java   |  15 +-
 .../cache/ha/HARQAddOperationJUnitTest.java        |   5 +-
 .../cache/ha/HARegionQueueIntegrationTest.java     |   6 +-
 .../internal/cache/ha/HARegionQueueJUnitTest.java  |   7 +-
 .../CacheClientNotifierIntegrationTest.java        |   5 +-
 .../ClientHealthMonitorIntegrationTest.java        |  10 +-
 .../AsyncEventQueueValidationsJUnitTest.java       |   9 +-
 .../DistributedSystemLogFileIntegrationTest.java   |  19 +-
 .../logging/LocatorLogFileIntegrationTest.java     |   5 +-
 .../internal/net/SSLSocketIntegrationTest.java     |  10 +-
 .../internal/net/SocketCloserIntegrationTest.java  |   9 +-
 .../offheap/OffHeapLRURecoveryRegressionTest.java  |   5 +-
 .../geode/internal/offheap/OffHeapRegionBase.java  |  11 +-
 .../ControlFileWatchdogIntegrationTest.java        |  21 ++-
 .../ControllableProcessIntegrationTest.java        |   5 +-
 .../FileProcessControllerIntegrationTest.java      |   7 +-
 .../process/NativeProcessUtilsIntegrationTest.java |   9 +-
 .../statistics/StatSamplerIntegrationTest.java     |   7 +-
 .../statistics/ValueMonitorIntegrationTest.java    |  13 +-
 .../FederatingManagerIntegrationTest.java          |   5 +-
 .../org/apache/geode/SystemFailureJUnitTest.java   |   6 +-
 .../cache/query/internal/QueryMonitorTest.java     |  10 +-
 .../internal/ClusterElderManagerTest.java          |   7 +-
 .../geode/internal/cache/AfterCompletionTest.java  |   8 +-
 .../geode/internal/cache/BeforeCompletionTest.java |   8 +-
 .../geode/internal/cache/EntryEventImplTest.java   |  18 +-
 .../geode/internal/cache/GemFireCacheImplTest.java |   5 +-
 .../cache/PartitionedRegionQueryEvaluatorTest.java |   5 +-
 .../cache/SearchLoadAndWriteProcessorTest.java     |  12 +-
 .../cache/SingleThreadJTAExecutorTest.java         |   7 +-
 .../geode/internal/cache/TXManagerImplTest.java    |   8 +-
 .../eviction/LRUListWithAsyncSortingTest.java      |   9 +-
 .../tier/sockets/ClientHealthMonitorJUnitTest.java |   8 +-
 .../internal/process/lang/AvailablePidTest.java    |   6 +-
 ...ServerBridgeClientMembershipRegressionTest.java |   7 +-
 .../cli/functions/GetRegionsFunctionTest.java      |   7 +-
 .../RollingUpgrade2DUnitTestBase.java              |  17 +-
 .../rollingupgrade/RollingUpgradeClients.java      |   6 +-
 .../RollingUpgradeConcurrentPutsReplicated.java    |   6 +-
 .../rollingupgrade/RollingUpgradeDUnitTest.java    |   7 +-
 ...gradeHARegionNameOnDifferentServerVersions.java |   6 +-
 .../RollingUpgradeRollLocatorWithTwoServers.java   |   6 +-
 .../RollingUpgradeRollLocatorsWithOldServer.java   |   6 +-
 ...LocatorWithMultipleServersReplicatedRegion.java |   6 +-
 .../rollingupgrade/RollingUpgradeTracePRQuery.java |   7 +-
 .../RollingUpgradeVerifyXmlEntity.java             |   6 +-
 ...ientStatisticsPublicationSecurityDUnitTest.java |   5 +-
 .../geode/cache/query/cq/CQDistributedTest.java    |  13 +-
 .../cache/query/cq/dunit/CqPerfDUnitTest.java      |   7 +-
 .../query/cq/dunit/CqPerfUsingPoolDUnitTest.java   |   7 +-
 .../cache/query/cq/dunit/CqQueryDUnitTest.java     |   6 +-
 .../dunit/CqSecurityAuthorizedUserDUnitTest.java   |  10 +-
 ...SecurityPartitionedAuthorizedUserDUnitTest.java |   6 +-
 .../dunit/CqSecurityUnauthorizedUserDUnitTest.java |   5 +-
 .../cache/query/dunit/QueryMonitorDUnitTest.java   |   5 +-
 .../geode/internal/cache/PutAllCSDUnitTest.java    |   5 +-
 .../tier/sockets/DurableClientCQDUnitTest.java     |   5 +-
 .../tier/sockets/DurableClientSimpleDUnitTest.java |   6 +-
 .../cache/tier/sockets/DurableClientTestBase.java  |  24 ++-
 .../cache/tier/sockets/DurableClientTestCase.java  |  26 ++-
 .../commands/DescribeClientCommandDUnitTest.java   |   5 +-
 .../commands/DurableClientCommandsDUnitTest.java   |   7 +-
 .../security/CQPDXPostProcessorDUnitTest.java      |   5 +-
 .../tier/sockets/ClientServerMiscBCDUnitTest.java  |  17 +-
 .../cache/query/cq/dunit/CqQueryTestListener.java  |   7 +-
 .../org/apache/geode/cache30/CacheXmlTestCase.java |   5 +-
 .../geode/cache30/MultiVMRegionTestCase.java       |  46 ++---
 .../membership/gms/MembershipManagerHelper.java    |   5 +-
 .../sockets/ClientServerMiscDUnitTestBase.java     |  38 ++--
 .../cache/wan/AsyncEventQueueTestBase.java         |  10 +-
 .../apache/geode/management/MXBeanAwaitility.java  |  23 +--
 .../commands/ExportLogsDistributedTestBase.java    |   4 +-
 .../commands/FunctionCommandsDUnitTestBase.java    |   5 +-
 .../RegionMembershipMBeanDUnitTestBase.java        |   5 +-
 .../ShowLogCommandDistributedTestBase.java         |   5 +-
 .../cli/commands/ShutdownCommandDUnitTestBase.java |   5 +-
 .../security/ClientAuthorizationTestCase.java      |  12 +-
 .../apache/geode/security/SecurityTestUtils.java   |   6 +-
 .../geode/test/dunit/StoppableWaitCriterion.java   |   4 +-
 .../java/org/apache/geode/test/dunit/Wait.java     |  23 +--
 .../org/apache/geode/test/dunit/WaitCriterion.java |   6 +-
 .../dunit/cache/internal/JUnit4CacheTestCase.java  |   7 +-
 .../geode/test/dunit/rules/ClusterStartupRule.java |   4 +-
 .../apache/geode/test/dunit/rules/MemberVM.java    |   9 +-
 .../geode/test/junit/rules/LocatorStarterRule.java |   6 +-
 .../junit/rules/MBeanServerConnectionRule.java     |   5 +-
 .../geode/test/junit/rules/MemberStarterRule.java  |  10 +-
 .../rules/ExecutorServiceRuleIntegrationTest.java  |   4 +-
 .../java/org/apache/geode/ExpirationDetector.java  |   4 +-
 ...AbstractProcessStreamReaderIntegrationTest.java |  10 +-
 .../geode/test/awaitility/GeodeAwaitility.java     |  59 +++++++
 .../test/concurrent/FileBasedCountDownLatch.java   |   6 +-
 .../test/junit/rules/ConcurrencyRuleTest.java      |  13 +-
 .../test/junit/rules/ExecutorServiceRuleTest.java  |  11 +-
 .../geode/cache/lucene/EvictionDUnitTest.java      |   5 +-
 .../geode/cache/lucene/ExpirationDUnitTest.java    |   6 +-
 .../cache/lucene/LuceneIndexDestroyDUnitTest.java  |   6 +-
 .../geode/cache/lucene/LuceneQueriesDUnitTest.java |   5 +-
 .../lucene/LuceneQueriesReindexDUnitTest.java      |   6 +-
 .../lucene/RebalanceWithRedundancyDUnitTest.java   |   7 +-
 ...ncyWithRegionCreatedBeforeReindexDUnitTest.java |   5 +-
 .../management/LuceneManagementDUnitTest.java      |   5 +-
 ...eneIndexCreationPersistenceIntegrationTest.java |   5 +-
 .../LuceneIndexMaintenanceIntegrationTest.java     |   6 +-
 .../cli/LuceneIndexCommandsIntegrationTest.java    |   4 +-
 .../PartitionedRepositoryManagerJUnitTest.java     |  20 +--
 .../LuceneSearchWithRollingUpgradeDUnit.java       |   4 +-
 ...ultAfterTwoLocatorsWithTwoServersAreRolled.java |   8 +-
 ...tResultsAfterClientAndServersAreRolledOver.java |   6 +-
 ...ntAndServersAreRolledOverAllBucketsCreated.java |   6 +-
 ...ccessfulWhenAllServersRollToCurrentVersion.java |   6 +-
 .../v1/acceptance/LocatorConnectionDUnitTest.java  |   5 +-
 .../protobuf/v1/AuthenticationIntegrationTest.java |   7 +-
 .../protobuf/v1/AuthorizationIntegrationTest.java  |   5 +-
 .../v1/DisconnectClientIntegrationTest.java        |   5 +-
 .../v1/ExecuteFunctionOnGroupIntegrationTest.java  |   7 +-
 .../v1/ExecuteFunctionOnMemberIntegrationTest.java |   7 +-
 .../v1/ExecuteFunctionOnRegionIntegrationTest.java |   7 +-
 .../v1/ProtocolVersionIntegrationTest.java         |   9 +-
 .../v1/ValueSerializerIntegrationTest.java         |   5 +-
 .../v1/acceptance/CacheConnectionJUnitTest.java    |   9 +-
 .../CacheConnectionTimeoutJUnitTest.java           |   5 +-
 .../v1/acceptance/CacheMaxConnectionJUnitTest.java |  13 +-
 .../v1/acceptance/CacheOperationsJUnitTest.java    |   5 +-
 .../PutIfAbsentRequestIntegrationTest.java         |   5 +-
 .../org/apache/geode/tools/pulse/tests/Server.java |   6 +-
 .../geode/tools/pulse/tests/rules/ServerRule.java  |   7 +-
 geode-rebalancer/build.gradle                      |   4 +-
 .../util/AutoBalancerIntegrationJUnitTest.java     |   5 +-
 .../internal/cache/UpdateVersionDUnitTest.java     |  13 +-
 ...ueueOverflowMBeanAttributesDistributedTest.java |   7 +-
 .../GatewayLegacyAuthenticationRegressionTest.java |  11 +-
 .../cache/wan/GatewayReceiverMBeanDUnitTest.java   |   5 +-
 ...nderOverflowMBeanAttributesDistributedTest.java |   7 +-
 .../cache/wan/Simple2CacheServerDUnitTest.java     |   9 +-
 .../geode/internal/cache/wan/WANTestBase.java      |  66 ++++---
 .../ConcurrentParallelGatewaySenderDUnitTest.java  |   7 +-
 ...ParallelGatewaySenderOperation_2_DUnitTest.java |  22 ++-
 .../KeepEventsOnGatewaySenderQueueDUnitTest.java   |   4 +-
 .../wan/misc/NewWanAuthenticationDUnitTest.java    |   7 +-
 .../cache/wan/misc/PDXNewWanDUnitTest.java         |  10 +-
 .../ParallelGatewaySenderOperationsDUnitTest.java  |   4 +-
 ...arallelGatewaySenderQueueOverflowDUnitTest.java |   5 +-
 .../parallel/ParallelWANConflationDUnitTest.java   |   5 +-
 .../wan/parallel/ParallelWANStatsDUnitTest.java    |   7 +-
 .../SerialGatewaySenderEventListenerDUnitTest.java |   5 +-
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |   5 +-
 .../WANHostNameVerificationDistributedTest.java    |   7 +-
 .../wancommand/ListGatewaysCommandDUnitTest.java   |   6 +-
 .../cache/wan/wancommand/WANCommandUtils.java      |  12 +-
 .../geode/management/WANManagementDUnitTest.java   |   6 +-
 .../WANClusterConfigurationDUnitTest.java          |   5 +-
 ...ateGatewaySenderMixedSiteOneCurrentSiteTwo.java |   6 +-
 .../cache/wan/WANRollingUpgradeDUnitTest.java      |   5 +-
 ...eEventProcessingMixedSiteOneCurrentSiteTwo.java |   6 +-
 ...gradeEventProcessingMixedSiteOneOldSiteTwo.java |   8 +-
 ...adeEventProcessingOldSiteOneCurrentSiteTwo.java |   6 +-
 ...ipleReceiversDefinedInClusterConfiguration.java |   5 +-
 ...tReprocessedAfterCurrentSiteMemberFailover.java |   6 +-
 ...fterCurrentSiteMemberFailoverWithOldClient.java |   6 +-
 ...tsNotReprocessedAfterOldSiteMemberFailover.java |   6 +-
 ...eCacheServerProfileToMembersOlderThan1dot5.java |   6 +-
 ...ANRollingUpgradeVerifyGatewaySenderProfile.java |   6 +-
 .../ShowLogCommandOverHttpDistributedTest.java     |   6 +-
 336 files changed, 1420 insertions(+), 1828 deletions(-)

diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/StopLocatorCommandDUnitTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/StopLocatorCommandDUnitTest.java
index 28c2829..32aa7a5 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/StopLocatorCommandDUnitTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/StopLocatorCommandDUnitTest.java
@@ -15,7 +15,6 @@
 package org.apache.geode.management.internal.cli.commands;
 
 import static org.apache.geode.distributed.internal.DistributionConfig.GEMFIRE_PREFIX;
-import static org.apache.geode.management.MXBeanAwaitility.await;
 import static org.apache.geode.management.cli.Result.Status.ERROR;
 import static org.apache.geode.management.cli.Result.Status.OK;
 import static org.apache.geode.management.internal.cli.i18n.CliStrings.GROUP;
@@ -35,7 +34,6 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import javax.management.MBeanServerConnection;
 import javax.management.ObjectName;
@@ -60,6 +58,7 @@ import org.apache.geode.internal.lang.ObjectUtils;
 import org.apache.geode.management.internal.cli.i18n.CliStrings;
 import org.apache.geode.management.internal.cli.result.CommandResult;
 import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.rules.ClusterStartupRule;
 import org.apache.geode.test.dunit.rules.MemberVM;
 import org.apache.geode.test.junit.rules.GfshCommandRule;
@@ -183,7 +182,7 @@ public class StopLocatorCommandDUnitTest {
   }
 
   private void waitForCommandToSucceed(String command) {
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> {
+    GeodeAwaitility.await().untilAsserted(() -> {
       CommandResult result = gfsh.executeCommand(command);
       assertThat(result.getStatus()).isEqualTo(OK);
     });
@@ -260,7 +259,7 @@ public class StopLocatorCommandDUnitTest {
       final MBeanServerConnection connection = conn.getMBeanServerConnection();
       assertThat(connection).isInstanceOf(MBeanServerConnection.class);
 
-      await().untilAsserted(() -> {
+      GeodeAwaitility.await().untilAsserted(() -> {
         final Set<ObjectName> objectNames = connection.queryNames(objectNamePattern, query);
         assertThat(objectNames).isNotNull().isNotEmpty().hasSize(1);
       });
diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerClientServerTest.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerClientServerTest.java
index 39aa4e8..f0c1fc7 100644
--- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerClientServerTest.java
+++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerClientServerTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.session.tests;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.util.concurrent.TimeUnit;
 
 import javax.servlet.http.HttpSession;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -95,7 +94,7 @@ public abstract class GenericAppServerClientServerTest extends CargoTestBase {
     serverVM.invoke(() -> {
       Cache cache = getCache();
       Region region = cache.getRegion("gemfire_modules_sessions");
-      Awaitility.await().atMost(1, TimeUnit.MINUTES)
+      await()
           .untilAsserted(() -> assertEquals(0, region.size()));
     });
     super.verifySessionIsRemoved(key);
diff --git a/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java b/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java
index 777546d..52f8559 100644
--- a/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java
+++ b/geode-assembly/src/integrationTest/java/org/apache/geode/tools/pulse/PulseSecurityIntegrationTest.java
@@ -15,9 +15,8 @@
 
 package org.apache.geode.tools.pulse;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import org.junit.Rule;
 import org.junit.Test;
@@ -48,7 +47,7 @@ public class PulseSecurityIntegrationTest {
     ManagementService service =
         ManagementService.getExistingManagementService(locator.getLocator().getCache());
 
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(service.getMemberMXBean()).isNotNull());
 
     Cluster cluster = pulse.getRepository().getCluster("cluster", "cluster");
diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
index 50ff8f9..0c67ae5 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcAsyncWriterIntegrationTest.java
@@ -15,15 +15,14 @@
 package org.apache.geode.connectors.jdbc;
 
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ThrowingRunnable;
 import org.junit.After;
 import org.junit.Before;
@@ -209,7 +208,7 @@ public abstract class JdbcAsyncWriterIntegrationTest {
   }
 
   private void awaitUntil(final ThrowingRunnable supplier) {
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(supplier);
+    await().untilAsserted(supplier);
   }
 
   private void assertRecordMatchesEmployee(ResultSet resultSet, String key, Employee employee)
diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
index e19fea8..e2e4712 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/JdbcDistributedTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.connectors.jdbc;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
@@ -28,9 +29,7 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Date;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -210,7 +209,7 @@ public abstract class JdbcDistributedTest implements Serializable {
 
       JdbcAsyncWriter asyncWriter = (JdbcAsyncWriter) ClusterStartupRule.getCache()
           .getAsyncEventQueue("JAW").getAsyncEventListener();
-      Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         assertThat(asyncWriter.getFailedEvents()).isEqualTo(1);
       });
 
@@ -456,7 +455,7 @@ public abstract class JdbcDistributedTest implements Serializable {
           .getAsyncEventQueue("JAW").getAsyncEventListener();
 
       region.put(key, pdxEmployee1);
-      Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         assertThat(asyncWriter.getSuccessfulEvents()).isEqualTo(1);
       });
       region.invalidate(key);
@@ -465,7 +464,7 @@ public abstract class JdbcDistributedTest implements Serializable {
       assertThat(result.getField("id")).isEqualTo(pdxEmployee1.getField("id"));
       assertThat(result.getField("name")).isEqualTo(pdxEmployee1.getField("name"));
       assertThat(result.getField("age")).isEqualTo(pdxEmployee1.getField("age"));
-      Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         assertThat(asyncWriter.getIgnoredEvents()).isEqualTo(1);
       });
     });
@@ -657,7 +656,7 @@ public abstract class JdbcDistributedTest implements Serializable {
       throws SQLException {
     Connection connection = DriverManager.getConnection(connectionUrl);
     Statement statement = connection.createStatement();
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThat(getRowCount(statement, TABLE_NAME)).isEqualTo(size);
     });
 
diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/MySqlConnectionRule.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/MySqlConnectionRule.java
index e8dadda..a027e23 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/MySqlConnectionRule.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/MySqlConnectionRule.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.test.junit.rules;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
-import java.util.concurrent.TimeUnit;
 
 import com.palantir.docker.compose.DockerComposeRule;
-import org.awaitility.Awaitility;
 
 public class MySqlConnectionRule extends SqlDatabaseConnectionRule {
   private static final String CREATE_DB_CONNECTION_STRING =
@@ -38,7 +37,7 @@ public class MySqlConnectionRule extends SqlDatabaseConnectionRule {
 
   @Override
   public Connection getConnection() throws SQLException {
-    Awaitility.await().ignoreExceptions().atMost(10, TimeUnit.SECONDS)
+    await().ignoreExceptions()
         .untilAsserted(
             () -> assertThat(DriverManager.getConnection(getCreateDbConnectionUrl())).isNotNull());
     String dbName = getDbName();
diff --git a/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/SqlDatabaseConnectionRule.java b/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/SqlDatabaseConnectionRule.java
index aab0b08..68aab37 100644
--- a/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/SqlDatabaseConnectionRule.java
+++ b/geode-connectors/src/acceptanceTest/java/org/apache/geode/test/junit/rules/SqlDatabaseConnectionRule.java
@@ -14,18 +14,17 @@
  */
 package org.apache.geode.test.junit.rules;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
-import java.util.concurrent.TimeUnit;
 
 import com.palantir.docker.compose.DockerComposeRule;
 import com.palantir.docker.compose.connection.DockerPort;
 import com.palantir.docker.compose.connection.waiting.HealthChecks;
-import org.awaitility.Awaitility;
 import org.junit.rules.ExternalResource;
 
 public abstract class SqlDatabaseConnectionRule extends ExternalResource
@@ -65,7 +64,7 @@ public abstract class SqlDatabaseConnectionRule extends ExternalResource
   @Override
   public Connection getConnection() throws SQLException {
     String connectionUrl = getConnectionUrl();
-    Awaitility.await().ignoreExceptions().atMost(10, TimeUnit.SECONDS)
+    await().ignoreExceptions()
         .untilAsserted(() -> assertThat(DriverManager.getConnection(connectionUrl)).isNotNull());
     Connection connection = DriverManager.getConnection(connectionUrl);
     return connection;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
index 81bf86b..781162d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/RegionExpirationDistributedTest.java
@@ -16,9 +16,9 @@ package org.apache.geode.cache;
 
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.timeout;
@@ -162,12 +162,12 @@ public class RegionExpirationDistributedTest implements Serializable {
       if (expirationAction().isInvalidate() || expirationAction().isLocalInvalidate()) {
         // verify region was invalidated
         Region<String, String> region = cache.getRegion(regionName);
-        await().atMost(1, MINUTES)
+        await()
             .untilAsserted(() -> assertThat(region.containsValueForKey(KEY)).isFalse());
 
       } else {
         // verify region was destroyed (or is in process of being destroyed)
-        await().atMost(1, MINUTES).until(() -> isDestroyed(cache.getRegion(regionName)));
+        await().until(() -> isDestroyed(cache.getRegion(regionName)));
       }
     }
 
@@ -175,19 +175,19 @@ public class RegionExpirationDistributedTest implements Serializable {
       if (expirationAction().isInvalidate()) {
         // distributed invalidate region
         Region<String, String> region = cache.getRegion(regionName);
-        await().atMost(1, MINUTES).untilAsserted(() -> {
+        await().untilAsserted(() -> {
           assertThat(region.containsKey(KEY)).isTrue();
           assertThat(region.containsValueForKey(KEY)).isFalse();
         });
 
       } else if (expirationAction().isDestroy()) {
         // verify region was destroyed (or is in process of being destroyed)
-        await().atMost(1, MINUTES).until(() -> isDestroyed(cache.getRegion(regionName)));
+        await().until(() -> isDestroyed(cache.getRegion(regionName)));
 
       } else {
         // for LOCAL_DESTROY or LOCAL_INVALIDATE, the value should be present
         Region<String, String> region = cache.getRegion(regionName);
-        await().atMost(1, MINUTES).untilAsserted(() -> {
+        await().untilAsserted(() -> {
           assertThat(region.containsValueForKey(KEY)).isTrue();
           assertThat(region.get(KEY)).isEqualTo(VALUE);
         });
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceDUnitTest.java
index 8e53ad7..aa17a91 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceDUnitTest.java
@@ -14,8 +14,7 @@
  */
 package org.apache.geode.cache.client.internal;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
@@ -29,7 +28,6 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionTimeoutException;
 import org.junit.Assert;
 import org.junit.Test;
@@ -436,7 +434,7 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
 
   private void putAndWaitForSuccess(VM vm, final String regionName, final Serializable key,
       final Serializable value) {
-    Awaitility.await().atMost(MAX_WAIT, MILLISECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThatCode(() -> putInVM(vm, regionName, key, value)).doesNotThrowAnyException();
     });
   }
@@ -464,7 +462,7 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
       for (int i = 0; i < expectedPorts.length; i++) {
         expectedEndpointPorts.add(new Integer(expectedPorts[i]));
       }
-      Awaitility.await().atMost(5, SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         List<ServerLocation> endpoints;
         HashSet actualEndpointPorts;
         endpoints = pool.getCurrentServers();
@@ -528,7 +526,7 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
     vm.invoke("wait for join", () -> {
       MyListener listener = (MyListener) remoteObjects.get(BRIDGE_LISTENER);
       try {
-        Awaitility.await().atMost(10, SECONDS).until(() -> listener.getJoins() > 0);
+        await().until(() -> listener.getJoins() > 0);
       } catch (ConditionTimeoutException e) {
         // do nothing here - caller will perform validations
       }
@@ -539,7 +537,7 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
     vm.invoke("wait for crash", () -> {
       MyListener listener = (MyListener) remoteObjects.get(BRIDGE_LISTENER);
       try {
-        Awaitility.await().atMost(10, SECONDS).until(() -> listener.getCrashes() > 0);
+        await().until(() -> listener.getCrashes() > 0);
       } catch (ConditionTimeoutException e) {
         // do nothing here - caller will perform validations
       }
@@ -550,7 +548,7 @@ public class AutoConnectionSourceDUnitTest extends LocatorTestBase {
     vm.invoke("wait for departure", () -> {
       MyListener listener = (MyListener) remoteObjects.get(BRIDGE_LISTENER);
       try {
-        Awaitility.await().atMost(10, SECONDS).until(() -> listener.getDepartures() > 0);
+        await().until(() -> listener.getDepartures() > 0);
       } catch (ConditionTimeoutException e) {
         // do nothing here - caller will perform validations
       }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
index d3c15f9..4bfbbd5 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
@@ -14,6 +14,8 @@
  */
 package org.apache.geode.cache.client.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+
 import java.io.IOException;
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -24,7 +26,6 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -254,15 +255,14 @@ public class LocatorLoadBalancingDUnitTest extends LocatorTestBase {
   private void checkConnectionCount(final int count) {
     Cache cache = (Cache) remoteObjects.get(CACHE_KEY);
     final CacheServerImpl server = (CacheServerImpl) cache.getCacheServers().get(0);
-    Awaitility.await().pollDelay(100, TimeUnit.MILLISECONDS)
-        .pollInterval(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          int sz = server.getAcceptor().getStats().getCurrentClientConnections();
-          if (Math.abs(sz - count) <= ALLOWABLE_ERROR_IN_COUNT) {
-            return true;
-          }
-          System.out.println("Found " + sz + " connections, expected " + count);
-          return false;
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      int sz = server.getAcceptor().getStats().getCurrentClientConnections();
+      if (Math.abs(sz - count) <= ALLOWABLE_ERROR_IN_COUNT) {
+        return true;
+      }
+      System.out.println("Found " + sz + " connections, expected " + count);
+      return false;
+    });
   }
 
   private void waitForPrefilledConnections(final int count) throws Exception {
@@ -272,8 +272,7 @@ public class LocatorLoadBalancingDUnitTest extends LocatorTestBase {
   private void waitForPrefilledConnections(final int count, final String poolName)
       throws Exception {
     final PoolImpl pool = (PoolImpl) PoolManager.getAll().get(poolName);
-    Awaitility.await().pollDelay(100, TimeUnit.MILLISECONDS)
-        .pollInterval(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
+    await().timeout(300, TimeUnit.SECONDS)
         .until(() -> pool.getConnectionCount() >= count);
   }
 
@@ -429,8 +428,7 @@ public class LocatorLoadBalancingDUnitTest extends LocatorTestBase {
     final ServerLocator sl = locator.getServerLocatorAdvisee();
     InternalLogWriter log = new LocalLogWriter(InternalLogWriter.FINEST_LEVEL, System.out);
     sl.getDistributionAdvisor().dumpProfiles("PROFILES= ");
-    Awaitility.await().pollDelay(100, TimeUnit.MILLISECONDS)
-        .pollInterval(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
+    await().timeout(300, TimeUnit.SECONDS)
         .until(() -> expected.equals(sl.getLoadMap()));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
index 2524081..4e746a0 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryDataInconsistencyDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.cache.query.dunit;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.fail;
 import static org.junit.Assert.assertEquals;
@@ -21,14 +22,11 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.Serializable;
 import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
 import org.assertj.core.api.Assertions;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -76,12 +74,6 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
   @Rule
   public CacheRule cacheRule = new CacheRule(1);
 
-  @BeforeClass
-  public static void setUpClass() {
-    Awaitility.setDefaultPollInterval(200, TimeUnit.MILLISECONDS);
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS);
-  }
-
   @Before
   public void setUp() {
     server = getVM(0);
@@ -125,7 +117,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
     });
     server.invoke("query on server", () -> {
       QueryService queryService = cacheRule.getCache().getQueryService();
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       Object resultSet = null;
       try {
         resultSet = queryService
@@ -148,7 +140,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
     // Client put is again hooked in AFTER_UPDATE_OP call in updateIndex.
     server.invoke("query on server", () -> {
       QueryService queryService = cacheRule.getCache().getQueryService();
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       Object resultSet = null;
       try {
         resultSet = queryService
@@ -170,7 +162,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       }
       hooked = false;// Let client put go further.
     });
-    Awaitility.await().until(joinThread(putThread));
+    await().until(joinThread(putThread));
   }
 
   @Test
@@ -215,7 +207,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       Cache cache = cacheRule.getCache();
       QueryService queryService = cache.getQueryService();
       Position pos1 = null;
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       try {
         Object resultSet = queryService.newQuery("<trace> select pos from /" + repRegionName
             + " p, p.positions.values pos where pos.secId = 'APPL' AND p.ID = 1").execute();
@@ -233,7 +225,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       } finally {
         hooked = false;// Let client put go further.
       }
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       try {
         Object resultSet = queryService.newQuery("<trace> select pos from /" + repRegionName
             + " p, p.positions.values pos where pos.secId = 'APPL' AND p.ID = 1").execute();
@@ -254,7 +246,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
         IndexManager.testHook = null;
       }
     });
-    Awaitility.await().until(joinThread(putThread));
+    await().until(joinThread(putThread));
   }
 
   @Test
@@ -295,7 +287,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       Cache cache = cacheRule.getCache();
       QueryService queryService = cache.getQueryService();
       Position pos1 = null;
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       try {
         Object resultSet = queryService.newQuery("<trace> select pos from /" + repRegionName
             + " p, p.positions.values pos where pos.secId = 'APPL' AND p.ID = 1").execute();
@@ -313,7 +305,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       } finally {
         hooked = false;// Let client put go further.
       }
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       try {
         Object resultSet = queryService.newQuery("select pos from /" + repRegionName
             + " p, p.positions.values pos where pos.secId = 'APPL' AND p.ID = 1").execute();
@@ -333,7 +325,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
         IndexManager.testHook = null;
       }
     });
-    Awaitility.await().until(joinThread(putThread));
+    await().until(joinThread(putThread));
   }
 
   @Test
@@ -375,7 +367,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       Cache cache = cacheRule.getCache();
       QueryService queryService = cache.getQueryService();
       Position pos1 = null;
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
       try {
         Object resultSet = queryService
             .newQuery("<trace> select pos from /" + repRegionName
@@ -395,7 +387,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
       } finally {
         hooked = false;// Let client put go further.
       }
-      Awaitility.await().until(() -> hooked);
+      await().until(() -> hooked);
 
       try {
         Object resultSet = queryService
@@ -418,7 +410,7 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
         hooked = false;// Let client put go further.
       }
     });
-    Awaitility.await().until(joinThread(putThread));
+    await().until(joinThread(putThread));
   }
 
   private Callable<Boolean> joinThread(AsyncInvocation thread) {
@@ -458,13 +450,13 @@ public class QueryDataInconsistencyDUnitTest implements Serializable {
           hooked = true;
           logger
               .info("QueryDataInconsistency.IndexManagerTestHook is hooked in Update Index Entry.");
-          Awaitility.await().until(() -> !hooked);
+          await().until(() -> !hooked);
           break;
         case 10: // Before Region update and after Index Remove call.
           hooked = true;
           logger
               .info("QueryDataInconsistency.IndexManagerTestHook is hooked in Remove Index Entry.");
-          Awaitility.await().until(() -> !hooked);
+          await().until(() -> !hooked);
           break;
         default:
           break;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryIndexUsingXMLDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryIndexUsingXMLDUnitTest.java
index c6d6a79..17e5963 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryIndexUsingXMLDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryIndexUsingXMLDUnitTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.cache.query.dunit;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.CACHE_XML_FILE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
@@ -29,7 +28,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.FileUtils;
 import org.junit.After;
@@ -517,7 +515,7 @@ public class QueryIndexUsingXMLDUnitTest extends JUnit4CacheTestCase {
   }
 
   public void validateIndexSize() {
-    await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       boolean indexSizeCheck_NAME = validateIndexSizeForRegion(NAME);
       boolean indexSizeCheck_REP_REG_NAME = validateIndexSizeForRegion(REP_REG_NAME);
       boolean indexSizeCheck_PERSISTENT_REG_NAME = validateIndexSizeForRegion(PERSISTENT_REG_NAME);
@@ -634,7 +632,7 @@ public class QueryIndexUsingXMLDUnitTest extends JUnit4CacheTestCase {
   }
 
   private void waitForIndexedBuckets(final PartitionedIndex index, final int bucketCount) {
-    await().atMost(2, MINUTES).until(() -> index.getNumberOfIndexedBuckets() >= bucketCount);
+    await().until(() -> index.getNumberOfIndexedBuckets() >= bucketCount);
   }
 
   private CacheSerializableRunnable loadRegion(final String name) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryUsingPoolDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryUsingPoolDUnitTest.java
index 0c98556..e41d0fa 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryUsingPoolDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryUsingPoolDUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.query.dunit;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -29,7 +30,6 @@ import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -138,8 +138,7 @@ public class QueryUsingPoolDUnitTest extends JUnit4CacheTestCase {
   }
 
   public void validateCompiledQuery(final long compiledQueryCount) {
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(60, TimeUnit.SECONDS)
+    await().timeout(60, TimeUnit.SECONDS)
         .until(() -> CacheClientNotifier.getInstance().getStats()
             .getCompiledQueryCount() == compiledQueryCount);
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/internal/index/InitializeIndexEntryDestroyQueryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/internal/index/InitializeIndexEntryDestroyQueryDUnitTest.java
index 167a6b0..d93b023 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/internal/index/InitializeIndexEntryDestroyQueryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/internal/index/InitializeIndexEntryDestroyQueryDUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.query.internal.index;
 
 import static org.apache.geode.cache.query.Utils.createPortfolioData;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -22,12 +23,10 @@ import static org.junit.Assert.fail;
 
 import java.util.Arrays;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
 import junitparams.JUnitParamsRunner;
 import junitparams.Parameters;
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -190,11 +189,11 @@ public class InitializeIndexEntryDestroyQueryDUnitTest extends JUnit4CacheTestCa
         fail();
       }
       Region region = cache.getRegion(regionName);
-      Awaitility.await().atMost(30, TimeUnit.SECONDS)
+      await()
           .untilAsserted(
               () -> assertNotNull(cache.getQueryService().getIndex(region, "statusIndex")));
       getCache().getQueryService().removeIndex(index);
-      Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(
+      await().untilAsserted(
           () -> assertEquals(null, getCache().getQueryService().getIndex(region, "statusIndex")));
     }
   }
@@ -208,7 +207,7 @@ public class InitializeIndexEntryDestroyQueryDUnitTest extends JUnit4CacheTestCa
       logger.debug("Going to destroy the value" + p);
       r.destroy(j);
       final int key = j;
-      Awaitility.await().atMost(20, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(null, r.get(key)));
 
       // Put the value back again.
@@ -261,7 +260,7 @@ public class InitializeIndexEntryDestroyQueryDUnitTest extends JUnit4CacheTestCa
       fail();
     }
     Region region = getCache().getRegion(regionName);
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(
             () -> assertNotNull(getCache().getQueryService().getIndex(region, indexName)));
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/snapshot/SnapshotDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/snapshot/SnapshotDUnitTest.java
index 995be7a..0aac106 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/snapshot/SnapshotDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/snapshot/SnapshotDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.cache.snapshot;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -25,12 +26,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.examples.snapshot.MyObject;
 import com.examples.snapshot.MyPdxSerializer;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -227,7 +226,7 @@ public class SnapshotDUnitTest extends JUnit4CacheTestCase {
             CountingAsyncEventListener aeqListener =
                 (CountingAsyncEventListener) aeq.getAsyncEventListener();
             if (aeq.isPrimary()) {
-              Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+              await()
                   .until(() -> aeqListener.getEvents() == NUM_ENTRIES);
               numAeqEvents = aeqListener.getEvents();
             }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientMembershipDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientMembershipDUnitTest.java
index 43ca8a1..aea285d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientMembershipDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientMembershipDUnitTest.java
@@ -14,9 +14,11 @@
  */
 package org.apache.geode.cache30;
 
+import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_NETWORK_PARTITION_DETECTION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertFalse;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
@@ -39,7 +41,6 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -105,14 +106,13 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
   }
 
   private void waitForAcceptsInProgressToBe(final int target) throws Exception {
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          int actual = getAcceptsInProgress();
-          if (actual == getAcceptsInProgress()) {
-            return true;
-          }
-          return false;
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      int actual = getAcceptsInProgress();
+      if (actual == getAcceptsInProgress()) {
+        return true;
+      }
+      return false;
+    });
   }
 
   protected int getAcceptsInProgress() {
@@ -249,10 +249,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // test JOIN for server
     InternalClientMembership.notifyServerJoined(serverLocation);
 
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED];
+    });
 
     assertTrue(fired[JOINED]);
     assertNotNull(member[JOINED]);
@@ -268,10 +267,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // test JOIN for client
     DistributedMember clientJoined = new TestDistributedMember("clientJoined");
     InternalClientMembership.notifyClientJoined(clientJoined);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED];
+    });
 
     assertTrue(fired[JOINED]);
     assertEquals(clientJoined, member[JOINED]);
@@ -287,10 +285,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
 
     // test LEFT for server
     InternalClientMembership.notifyServerLeft(serverLocation);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[LEFT];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[LEFT];
+    });
 
     assertFalse(fired[JOINED]);
     assertNull(memberId[JOINED]);
@@ -306,10 +303,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // test LEFT for client
     DistributedMember clientLeft = new TestDistributedMember("clientLeft");
     InternalClientMembership.notifyClientLeft(clientLeft);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[LEFT];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[LEFT];
+    });
 
     assertFalse(fired[JOINED]);
     assertNull(memberId[JOINED]);
@@ -325,10 +321,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
 
     // test CRASHED for server
     InternalClientMembership.notifyServerCrashed(serverLocation);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[CRASHED];
+    });
 
     assertFalse(fired[JOINED]);
     assertNull(memberId[JOINED]);
@@ -344,10 +339,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // test CRASHED for client
     DistributedMember clientCrashed = new TestDistributedMember("clientCrashed");
     InternalClientMembership.notifyClientCrashed(clientCrashed);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[CRASHED];
+    });
 
     assertFalse(fired[JOINED]);
     assertNull(memberId[JOINED]);
@@ -406,10 +400,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // fire event to make sure listener is registered
     DistributedMember clientJoined = new TestDistributedMember("clientJoined");
     InternalClientMembership.notifyClientJoined(clientJoined);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED];
+    });
 
     assertTrue(fired[0]);
     assertEquals(clientJoined, member[0]);
@@ -424,10 +417,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // unregister and verify listener is not notified
     ClientMembership.unregisterClientMembershipListener(listener);
     InternalClientMembership.notifyClientJoined(clientJoined);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).until(() -> {
-          return true;
-        });
+    await().until(() -> {
+      return true;
+    });
 
     assertFalse(fired[0]);
     assertNull(member[0]);
@@ -787,8 +779,8 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     System.out.println("[testClientMembershipEventsInClient] sanity check");
     InternalClientMembership.notifyServerJoined(serverLocation);
 
-    Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
-        .pollDelay(50, TimeUnit.MILLISECONDS).until(() -> fired[JOINED] || fired[CRASHED]);
+    await().timeout(300, SECONDS)
+        .until(() -> fired[JOINED] || fired[CRASHED]);
 
     assertTrue(fired[JOINED]);
     assertNotNull(member[JOINED]);
@@ -823,8 +815,8 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
       Assert.fail("While creating Region on Edge", ex);
     }
 
-    Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
-        .pollDelay(50, TimeUnit.MILLISECONDS).until(() -> fired[JOINED] || fired[CRASHED]);
+    await().timeout(300, SECONDS)
+        .until(() -> fired[JOINED] || fired[CRASHED]);
 
     System.out.println("[testClientMembershipEventsInClient] assert client detected server join");
 
@@ -853,8 +845,8 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
 
     vm0.invoke("Stop BridgeServer", () -> stopBridgeServers(getCache()));
 
-    Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
-        .pollDelay(50, TimeUnit.MILLISECONDS).until(() -> fired[JOINED] || fired[CRASHED]);
+    await().timeout(300, SECONDS)
+        .until(() -> fired[JOINED] || fired[CRASHED]);
 
     System.out
         .println("[testClientMembershipEventsInClient] assert client detected server departure");
@@ -883,8 +875,8 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
       }
     });
 
-    Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS)
-        .pollDelay(50, TimeUnit.MILLISECONDS).until(() -> fired[JOINED] || fired[CRASHED]);
+    await().timeout(300, SECONDS)
+        .until(() -> fired[JOINED] || fired[CRASHED]);
 
     System.out
         .println("[testClientMembershipEventsInClient] assert client detected server recovery");
@@ -982,10 +974,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     System.out.println("[testClientMembershipEventsInServer] sanity check");
     DistributedMember test = new TestDistributedMember("test");
     InternalClientMembership.notifyClientJoined(test);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED] || fired[LEFT] || fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED] || fired[LEFT] || fired[CRASHED];
+    });
 
     assertTrue(fired[JOINED]);
     assertEquals(test, member[JOINED]);
@@ -1025,10 +1016,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     DistributedMember clientMember = (DistributedMember) vm0.invoke(createConnectionPool);
     String clientMemberId = clientMember.toString();
 
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED] || fired[LEFT] || fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED] || fired[LEFT] || fired[CRASHED];
+    });
 
     System.out.println("[testClientMembershipEventsInServer] assert server detected client join");
     assertTrue(fired[JOINED]);
@@ -1061,10 +1051,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
       }
     });
 
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED] || fired[LEFT] || fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED] || fired[LEFT] || fired[CRASHED];
+    });
 
     System.out.println("[testClientMembershipEventsInServer] assert server detected client left");
     assertFalse(fired[JOINED]);
@@ -1084,10 +1073,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     // reconnect bridge client to test for crashed event
     clientMemberId = vm0.invoke(createConnectionPool).toString();
 
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED] || fired[LEFT] || fired[CRASHED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED] || fired[LEFT] || fired[CRASHED];
+    });
 
     System.out
         .println("[testClientMembershipEventsInServer] assert server detected client re-join");
@@ -1122,10 +1110,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
         }
       });
 
-      Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-          .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-            return fired[JOINED] || fired[LEFT] || fired[CRASHED];
-          });
+      await().timeout(300, TimeUnit.SECONDS).until(() -> {
+        return fired[JOINED] || fired[LEFT] || fired[CRASHED];
+      });
 
       System.out
           .println("[testClientMembershipEventsInServer] assert server detected client crashed");
@@ -1196,10 +1183,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
 
     // assert that event is fired while connected
     InternalClientMembership.notifyServerJoined(serverLocation);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED];
+    });
     assertTrue(fired[JOINED]);
     assertNotNull(member[JOINED]);
     assertFalse(isClient[JOINED]);
@@ -1209,10 +1195,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     disconnectFromDS();
 
     InternalClientMembership.notifyServerJoined(serverLocation);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).until(() -> {
-          return true;
-        });
+    await().until(() -> {
+      return true;
+    });
 
     assertFalse(fired[JOINED]);
     assertNull(member[JOINED]);
@@ -1225,10 +1210,9 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     assertTrue(getSystem(config).isConnected());
 
     InternalClientMembership.notifyServerJoined(serverLocation);
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          return fired[JOINED];
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      return fired[JOINED];
+    });
 
     assertTrue(fired[JOINED]);
     assertNotNull(member[JOINED]);
@@ -1293,17 +1277,16 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
 
     {
       final int expectedClientCount = clientMemberIds.size();
-      Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-          .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-            Map connectedClients = InternalClientMembership.getConnectedClients(false, getCache());
-            if (connectedClients == null) {
-              return false;
-            }
-            if (connectedClients.size() != expectedClientCount) {
-              return false;
-            }
-            return true;
-          });
+      await().timeout(300, TimeUnit.SECONDS).until(() -> {
+        Map connectedClients = InternalClientMembership.getConnectedClients(false, getCache());
+        if (connectedClients == null) {
+          return false;
+        }
+        if (connectedClients.size() != expectedClientCount) {
+          return false;
+        }
+        return true;
+      });
     }
 
     Map connectedClients = InternalClientMembership.getConnectedClients(false, getCache());
@@ -1387,20 +1370,19 @@ public class ClientMembershipDUnitTest extends ClientServerTestCase {
     }
 
     final int expectedVMCount = host.getVMCount();
-    Awaitility.await().pollInterval(100, TimeUnit.MILLISECONDS)
-        .pollDelay(100, TimeUnit.MILLISECONDS).timeout(300, TimeUnit.SECONDS).until(() -> {
-          if (PoolManager.getAll().size() != expectedVMCount) {
-            return false;
-          }
-          Map connectedServers = InternalClientMembership.getConnectedServers();
-          if (connectedServers == null) {
-            return false;
-          }
-          if (connectedServers.size() != expectedVMCount) {
-            return false;
-          }
-          return true;
-        });
+    await().timeout(300, TimeUnit.SECONDS).until(() -> {
+      if (PoolManager.getAll().size() != expectedVMCount) {
+        return false;
+      }
+      Map connectedServers = InternalClientMembership.getConnectedServers();
+      if (connectedServers == null) {
+        return false;
+      }
+      if (connectedServers.size() != expectedVMCount) {
+        return false;
+      }
+      return true;
+    });
 
     assertEquals(host.getVMCount(), PoolManager.getAll().size());
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
index 0244cbe..0cb2604 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ClientServerCCEDUnitTest.java
@@ -18,6 +18,7 @@ import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_ID;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_TIMEOUT;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -32,7 +33,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -255,7 +255,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
         // Set the expiration time on the client entry.
         r.get(key);
 
-        Awaitility.await("waiting for object to expire").atMost(30, SECONDS).until(() -> {
+        await("waiting for object to expire").until(() -> {
           return expirationTimeMillis[0] != null;
         });
 
@@ -356,7 +356,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
       vm1.invoke(() -> {
         PRTombstoneMessageObserver mo =
             (PRTombstoneMessageObserver) DistributionMessageObserver.getInstance();
-        Awaitility.await().atMost(60, SECONDS).until(() -> {
+        await().until(() -> {
           return mo.tsMessageProcessed >= 1;
         });
         assertTrue("Tombstone GC message is not expected.", mo.thName.contains(
@@ -407,7 +407,7 @@ public class ClientServerCCEDUnitTest extends JUnit4CacheTestCase {
         PRTombstoneMessageObserver mo =
             (PRTombstoneMessageObserver) DistributionMessageObserver.getInstance();
         // Should receive tombstone message for each bucket.
-        Awaitility.await().atMost(60, SECONDS).until(() -> {
+        await().until(() -> {
           return mo.prTsMessageProcessed >= 2;
         });
         assertEquals("Tombstone GC message is expected.", 2, mo.prTsMessageProcessed);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
index 33188be..9c2f1da 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DiskRegionDistributedTest.java
@@ -14,16 +14,14 @@
  */
 package org.apache.geode.cache30;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.EvictionAction.OVERFLOW_TO_DISK;
 import static org.apache.geode.cache.EvictionAttributes.createLRUEntryAttributes;
 import static org.apache.geode.cache.EvictionAttributes.createLRUMemoryAttributes;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PROXY;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 
@@ -117,7 +115,7 @@ public class DiskRegionDistributedTest implements Serializable {
       Region region = cacheRule.getCache().getRegion(uniqueName);
       EvictionCounters evictionCounters = getEvictionCounters(region);
 
-      await("waiting for evictions to exceed 6").atMost(1, MINUTES)
+      await("waiting for evictions to exceed 6")
           .until(() -> evictionCounters.getEvictions() > 6);
     });
 
@@ -208,7 +206,7 @@ public class DiskRegionDistributedTest implements Serializable {
     vm0.invoke(() -> {
       Region region = cacheRule.getCache().getRegion(uniqueName);
 
-      await("value for key remains: " + key).atMost(30, SECONDS)
+      await("value for key remains: " + key)
           .until(() -> region.get(key) == null);
     });
 
@@ -222,7 +220,7 @@ public class DiskRegionDistributedTest implements Serializable {
     vm0.invoke(() -> {
       Region region = cacheRule.getCache().getRegion(uniqueName);
 
-      await("verify update").atMost(30, SECONDS).until(() -> newValue.equals(region.get(key)));
+      await("verify update").until(() -> newValue.equals(region.get(key)));
     });
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
index 166517b..c7225ac 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.cache30;
 
 import static org.apache.geode.distributed.ConfigurationProperties.CONSERVE_SOCKETS;
 import static org.apache.geode.distributed.ConfigurationProperties.DISTRIBUTED_SYSTEM_ID;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
 import static org.assertj.core.api.Assumptions.assumeThat;
@@ -24,9 +25,7 @@ import static org.assertj.core.api.Assumptions.assumeThat;
 import java.net.UnknownHostException;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -389,7 +388,7 @@ public class DistributedAckRegionCCEDUnitTest extends DistributedAckRegionDUnitT
       }
       // now simulate a low free-memory condition
       TombstoneService.FORCE_GC_MEMORY_EVENTS = true;
-      Awaitility.waitAtMost(20, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+      await()
           .until(() -> CCRegion.getCachePerfStats().getTombstoneGCCount() > initialCount);
 
       Thread.sleep(5000);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/PRBucketSynchronizationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/PRBucketSynchronizationDUnitTest.java
index 4391bff..0b8bdeb 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/PRBucketSynchronizationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/PRBucketSynchronizationDUnitTest.java
@@ -14,13 +14,13 @@
  */
 package org.apache.geode.cache30;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertTrue;
 
 import java.util.HashSet;
 import java.util.Properties;
 import java.util.Set;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 
@@ -210,7 +210,7 @@ public class PRBucketSynchronizationDUnitTest extends CacheTestCase {
       PartitionedRegion pr = (PartitionedRegion) testRegion;
       final BucketRegion bucket = pr.getDataStore().getLocalBucketById(0);
 
-      Awaitility.await().until(() -> {
+      await().until(() -> {
         if (testRegion.getCache().getDistributionManager().isCurrentMember(crashedMember)) {
           return false;
         }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/RRSynchronizationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/RRSynchronizationDUnitTest.java
index fd2c77f..691076c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/RRSynchronizationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/RRSynchronizationDUnitTest.java
@@ -14,11 +14,11 @@
  */
 package org.apache.geode.cache30;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Properties;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 
@@ -170,7 +170,7 @@ public class RRSynchronizationDUnitTest extends CacheTestCase {
   private void verifySynchronized(VM vm, final InternalDistributedMember crashedMember) {
     vm.invoke("check that synchronization happened", () -> {
       final DistributedRegion dr = (DistributedRegion) testRegion;
-      Awaitility.await().until(() -> {
+      await().until(() -> {
 
         if (testRegion.getCache().getDistributionManager().isCurrentMember(crashedMember)) {
           return false;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
index 6a07b88..68ce460 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
@@ -27,6 +27,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.MEMBER_TIMEOU
 import static org.apache.geode.distributed.ConfigurationProperties.ROLES;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.START_LOCATOR;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -565,7 +566,7 @@ public class ReconnectDUnitTest extends JUnit4CacheTestCase {
 
       assertTrue("Expected the restarted member to be hosting a running locator",
           vm0.invoke("check for running locator", () -> {
-            Awaitility.await("waiting for locator to restart").atMost(30, TimeUnit.SECONDS)
+            await("waiting for locator to restart")
                 .until(Locator::getLocator, notNullValue());
             if (((InternalLocator) Locator.getLocator()).isStopped()) {
               System.err.println("found a stopped locator");
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectWithCacheXMLDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectWithCacheXMLDUnitTest.java
index f4248ef..34d80fa 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectWithCacheXMLDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectWithCacheXMLDUnitTest.java
@@ -15,11 +15,10 @@
 package org.apache.geode.cache30;
 
 import static org.apache.geode.internal.Assert.assertTrue;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.junit.Test;
@@ -97,7 +96,7 @@ public class ReconnectWithCacheXMLDUnitTest extends JUnit4CacheTestCase {
     });
     MembershipManagerHelper.crashDistributedSystem(cache.getDistributedSystem());
     assertTrue(membershipFailed.get());
-    await().atMost(60000, TimeUnit.MILLISECONDS).pollInterval(5000, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> cache.getReconnectedCache() != null);
 
     Cache newCache = cache.getReconnectedCache();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache30/RegionReliabilityTestCase.java b/geode-core/src/distributedTest/java/org/apache/geode/cache30/RegionReliabilityTestCase.java
index 55e433b..dbcf2bf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache30/RegionReliabilityTestCase.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache30/RegionReliabilityTestCase.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache30;
 
 import static org.apache.geode.distributed.ConfigurationProperties.ROLES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -28,10 +29,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.AttributesFactory;
@@ -827,7 +826,7 @@ public abstract class RegionReliabilityTestCase extends ReliabilityTestCase {
     region.put("expireMe", "expireMe");
 
     waitForEntryDestroy(region, "expireMe");
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
   }
 
@@ -985,7 +984,7 @@ public abstract class RegionReliabilityTestCase extends ReliabilityTestCase {
     mutator.setEntryTimeToLive(new ExpirationAttributes(1, ExpirationAction.LOCAL_DESTROY));
 
     waitForEntryDestroy(region, "expireMe");
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedLockServiceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedLockServiceDUnitTest.java
index fb0991c..77dc6bd 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedLockServiceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedLockServiceDUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.distributed;
 
 import static java.lang.Boolean.TRUE;
 import static java.lang.Long.MAX_VALUE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.fail;
 
@@ -30,14 +31,12 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 import org.apache.logging.log4j.Logger;
 import org.assertj.core.api.Assertions;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -195,7 +194,7 @@ public final class DistributedLockServiceDUnitTest extends JUnit4DistributedTest
         DLockService localService =
             (DLockService) DistributedLockService.getServiceNamed(serviceName);
 
-        Awaitility.await().atMost(1, TimeUnit.MINUTES)
+        await()
             .untilAsserted(() -> assertThat(localService.getStats().getLockWaitsInProgress())
                 .isEqualTo(vmThreads[vmId]));
       });
@@ -329,7 +328,7 @@ public final class DistributedLockServiceDUnitTest extends JUnit4DistributedTest
 
     vmList.remove(originalGrantorVM);
 
-    Awaitility.await("vm0 leave has been processed").atMost(20, TimeUnit.SECONDS)
+    await("vm0 leave has been processed")
         .until(() -> vmList.parallelStream()
             .noneMatch(vm -> vm.invoke(() -> InternalDistributedSystem
                 .getAnyInstance()
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
index fd4b816..ce95f30 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/DistributedMemberDUnitTest.java
@@ -19,6 +19,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
 import static org.apache.geode.distributed.ConfigurationProperties.ROLES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertFalse;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
@@ -35,9 +36,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -222,7 +221,7 @@ public class DistributedMemberDUnitTest extends JUnit4DistributedTestCase {
           Role myRole = (Role) myRoles.iterator().next();
           assertTrue(vmRoles[vm].equals(myRole.getName()));
 
-          Awaitility.await().atMost(10, TimeUnit.SECONDS)
+          await()
               .until(() -> dm.getOtherNormalDistributionManagerIds().size() == 3);
           Set<InternalDistributedMember> members = dm.getOtherNormalDistributionManagerIds();
 
@@ -347,7 +346,7 @@ public class DistributedMemberDUnitTest extends JUnit4DistributedTestCase {
 
           assertEquals(Arrays.asList("" + vm, makeOddEvenString(vm)), myGroups);
 
-          Awaitility.await().atMost(10, TimeUnit.SECONDS)
+          await()
               .until(() -> dm.getOtherNormalDistributionManagerIds().size() == 3);
           Set<InternalDistributedMember> members = dm.getOtherNormalDistributionManagerIds();
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/GrantorFailoverDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/GrantorFailoverDUnitTest.java
index d971689..6051691 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/GrantorFailoverDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/GrantorFailoverDUnitTest.java
@@ -14,16 +14,15 @@
  */
 package org.apache.geode.distributed;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.catchThrowable;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -116,7 +115,7 @@ public class GrantorFailoverDUnitTest {
     final MemberVM survivor2 = locators.get(2);
     grantorVM.invoke(() -> {
       DistributedLockService.becomeLockGrantor(SERVICE_NAME);
-      Awaitility.waitAtMost(30, TimeUnit.SECONDS).untilAsserted(
+      await().untilAsserted(
           () -> assertThat(DistributedLockService.isLockGrantor(SERVICE_NAME)).isTrue());
     });
 
@@ -176,7 +175,7 @@ public class GrantorFailoverDUnitTest {
   private static InternalDistributedMember assertIsElderAndGetId() {
     DistributionManager distributionManager =
         ClusterStartupRule.getCache().getInternalDistributedSystem().getDistributionManager();
-    Awaitility.await("Wait to be elder").atMost(2, TimeUnit.MINUTES)
+    await("Wait to be elder")
         .untilAsserted(() -> assertThat(distributionManager.isElder()).isTrue());
     return distributionManager.getElderId();
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java
index 28eb1d3..3665936 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/LocatorDUnitTest.java
@@ -36,6 +36,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTOR
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_PASSWORD;
 import static org.apache.geode.distributed.ConfigurationProperties.START_LOCATOR;
 import static org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -53,7 +54,6 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -224,7 +224,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
         DistributedLockService serviceNamed =
             DistributedLockService.getServiceNamed("test service");
         serviceNamed.lock("foo3", 0, 0);
-        Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+        await()
             .until(() -> serviceNamed.isLockGrantor());
         assertTrue(serviceNamed.isLockGrantor());
       });
@@ -482,7 +482,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
     } finally {
       loc1.invoke("stop locator", () -> stopLocator());
       // loc2 should die from inability to connect.
-      loc2.invoke(() -> Awaitility.await("locator2 dies").atMost(15, TimeUnit.SECONDS)
+      loc2.invoke(() -> await("locator2 dies")
           .until(() -> Locator.getLocator() == null));
     }
   }
@@ -532,7 +532,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
           () -> expectSystemToContainThisManyMembers(1));
     } finally {
       // loc2 should die from inability to connect.
-      loc2.invoke(() -> Awaitility.await("locator2 dies").atMost(30, TimeUnit.SECONDS)
+      loc2.invoke(() -> await("locator2 dies")
           .until(() -> Locator.getLocator() == null));
       loc1.invoke("expectSystemToContainThisManyMembers",
           () -> expectSystemToContainThisManyMembers(1));
@@ -701,7 +701,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
 
   private void assertLeadMember(final DistributedMember member, final DistributedSystem sys,
       long timeout) {
-    Awaitility.waitAtMost(timeout, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> {
           DistributedMember lead = MembershipManagerHelper.getLeadMember(sys);
           if (member != null) {
@@ -820,7 +820,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       org.apache.geode.test.dunit.LogWriterUtils.getLogWriter()
           .info("waiting for my distributed system to disconnect due to partition detection");
 
-      Awaitility.waitAtMost(24000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> {
             return !sys.isConnected();
           });
@@ -928,8 +928,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       // crash the lead vm. Should be okay
       vm1.invoke(crashSystem);
 
-      Awaitility.waitAtMost(4 * 2000, TimeUnit.MILLISECONDS)
-          .pollInterval(200, TimeUnit.MILLISECONDS).until(() -> isSystemConnected());
+      await().until(() -> isSystemConnected());
 
       assertTrue("Distributed system should not have disconnected", isSystemConnected());
 
@@ -1203,7 +1202,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
         loc.stop();
       });
 
-      Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> sys.isConnected());
 
       assertTrue("Distributed system should not have disconnected", sys.isConnected());
@@ -1218,7 +1217,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       // locator notice the failure and continue to run
       vm1.invoke(() -> disconnectDistributedSystem());
 
-      Awaitility.waitAtMost(10, TimeUnit.SECONDS).pollInterval(1000, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> vm2.invoke(() -> LocatorDUnitTest.isSystemConnected()));
 
       assertTrue("Distributed system should not have disconnected",
@@ -1337,7 +1336,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
 
       // now ensure that one of the remaining members became the coordinator
 
-      Awaitility.waitAtMost(15000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> !coord.equals(MembershipManagerHelper.getCoordinator(system)));
 
       DistributedMember newCoord = MembershipManagerHelper.getCoordinator(system);
@@ -1421,7 +1420,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       vm0.invoke(() -> stopLocator());
 
       // now ensure that one of the remaining members became the coordinator
-      Awaitility.waitAtMost(15000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> !coord.equals(MembershipManagerHelper.getCoordinator(system)));
 
       DistributedMember newCoord = MembershipManagerHelper.getCoordinator(system);
@@ -1438,7 +1437,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
 
       final DistributedMember tempCoord = newCoord;
 
-      Awaitility.waitAtMost(5000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> !tempCoord.equals(MembershipManagerHelper.getCoordinator(system)));
 
       system.disconnect();
@@ -1529,7 +1528,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
         addDSProps(props);
         system = (InternalDistributedSystem) DistributedSystem.connect(props);
 
-        Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+        await()
             .until(() -> system.getDM().getViewMembers().size() >= 3);
 
         // three applications plus
@@ -1603,7 +1602,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
 
       system = (InternalDistributedSystem) DistributedSystem.connect(dsProps);
 
-      Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> system.getDM().getViewMembers().size() == 6);
 
       // three applications plus
@@ -1613,7 +1612,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       vm1.invoke(() -> stopLocator());
       vm2.invoke(() -> stopLocator());
 
-      Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> system.getDM().getMembershipManager().getView().size() <= 3);
 
       final String newLocators = host0 + "[" + port2 + "]," + host0 + "[" + port3 + "]";
@@ -1629,7 +1628,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       vm1.invoke(() -> startLocatorAsync(new Object[] {port2, dsProps}));
       vm2.invoke(() -> startLocatorAsync(new Object[] {port3, dsProps}));
 
-      Awaitility.waitAtMost(30000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> !GMSJoinLeaveTestHelper.getCurrentCoordinator().equals(currentCoordinator)
               && system.getDM().getAllHostedLocators().size() == 2);
 
@@ -1705,7 +1704,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
       vm4.invoke(() -> {
         DistributedSystem.connect(dsProps);
 
-        Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS).pollInterval(200, TimeUnit.MILLISECONDS)
+        await()
             .until(() -> InternalDistributedSystem.getConnectedInstance().getDM().getViewMembers()
                 .size() == 5);
         return true;
@@ -1717,8 +1716,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
 
       SerializableRunnable waitForDisconnect = new SerializableRunnable("waitForDisconnect") {
         public void run() {
-          Awaitility.waitAtMost(10000, TimeUnit.MILLISECONDS)
-              .pollInterval(200, TimeUnit.MILLISECONDS)
+          await()
               .until(() -> InternalDistributedSystem.getConnectedInstance() == null);
         }
       };
@@ -1768,7 +1766,7 @@ public class LocatorDUnitTest extends JUnit4DistributedTestCase {
   }
 
   private void waitUntilLocatorBecomesCoordinator() {
-    Awaitility.waitAtMost(30000, TimeUnit.MILLISECONDS).pollInterval(1000, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> GMSJoinLeaveTestHelper.getCurrentCoordinator()
             .getVmKind() == ClusterDistributionManager.LOCATOR_DM_TYPE);
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/ServerLauncherDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/ServerLauncherDUnitTest.java
index 796dea9..40e8254 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/ServerLauncherDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/ServerLauncherDUnitTest.java
@@ -15,16 +15,15 @@
 
 package org.apache.geode.distributed;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -89,7 +88,7 @@ public class ServerLauncherDUnitTest {
 
     launchServer(locator.getPort());
 
-    Awaitility.waitAtMost(10, TimeUnit.SECONDS).until(
+    await().until(
         () -> locator.invoke(() -> TestManagementListener.joined && TestManagementListener.left));
 
     assertThat(locator.invoke(() -> TestManagementListener.crashed)).isFalse();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
index d360997..1caf68a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerDUnitTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.distributed.internal;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.ACK_SEVERE_ALERT_THRESHOLD;
 import static org.apache.geode.distributed.ConfigurationProperties.ACK_WAIT_THRESHOLD;
 import static org.apache.geode.distributed.ConfigurationProperties.BIND_ADDRESS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
 import static org.apache.geode.distributed.internal.DistributionConfig.GEMFIRE_PREFIX;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertTrue;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
@@ -31,13 +30,11 @@ import static org.apache.geode.test.dunit.Wait.pause;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.net.InetAddress;
 import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.logging.log4j.Logger;
@@ -186,7 +183,6 @@ public class ClusterDistributionManagerDUnitTest extends DistributedTestCase {
         .isTrue();
 
     await("waiting for member to be removed")
-        .atMost((timeout / 3) + gracePeriod, TimeUnit.MILLISECONDS)
         .until(() -> !membershipManager.isSurpriseMember(member));
   }
 
@@ -286,14 +282,14 @@ public class ClusterDistributionManagerDUnitTest extends DistributedTestCase {
     disconnectFromDS();
 
     vm1.invoke("wait for forced disconnect", () -> {
-      await("vm1's system should have been disconnected").atMost(1, MINUTES)
+      await("vm1's system should have been disconnected")
           .untilAsserted(() -> assertThat(basicGetSystem().isConnected()).isFalse());
 
-      await("vm1's cache is not closed").atMost(30, SECONDS)
+      await("vm1's cache is not closed")
           .untilAsserted(() -> assertThat(myCache.isClosed()).isTrue());
 
       await("vm1's listener should have received afterRegionDestroyed notification")
-          .atMost(30, SECONDS).untilAsserted(() -> assertThat(regionDestroyedInvoked).isTrue());
+          .untilAsserted(() -> assertThat(regionDestroyedInvoked).isTrue());
     });
   }
 
@@ -345,7 +341,7 @@ public class ClusterDistributionManagerDUnitTest extends DistributedTestCase {
     NetView newView = new NetView(view, view.getViewId() + 1);
     membershipManager.installView(newView);
 
-    await().atMost(30, SECONDS)
+    await()
         .untilAsserted(() -> assertThat(waitForViewInstallationDone.get()).isTrue());
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java
index fb697f5..6117543 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ClusterDistributionManagerForAdminDUnitTest.java
@@ -14,12 +14,10 @@
  */
 package org.apache.geode.distributed.internal;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAMPLING_ENABLED;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.net.InetAddress;
 import java.util.Set;
@@ -86,7 +84,7 @@ public class ClusterDistributionManagerForAdminDUnitTest extends CacheTestCase
     this.agent = GfManagerAgentFactory.getManagerAgent(
         new GfManagerAgentConfig(null, transport, getLogWriter(), Alert.SEVERE, this, null));
 
-    await().atMost(1, MINUTES).untilAsserted(() -> assertThat(agent.isConnected()).isTrue());
+    await().untilAsserted(() -> assertThat(agent.isConnected()).isTrue());
   }
 
   @After
@@ -117,7 +115,7 @@ public class ClusterDistributionManagerForAdminDUnitTest extends CacheTestCase
 
   @Test
   public void testApplications() throws Exception {
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(agent.listApplications().length).isGreaterThanOrEqualTo(4));
 
     ApplicationVM[] applications = agent.listApplications();
@@ -224,7 +222,7 @@ public class ClusterDistributionManagerForAdminDUnitTest extends CacheTestCase
         Region rootRegion = root;
         subRegion.destroyRegion();
 
-        await().atMost(30, SECONDS)
+        await()
             .untilAsserted(() -> assertThat(rootRegion.subregions(false)).hasSize(expectedSize));
       }
     }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionAdvisorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionAdvisorDUnitTest.java
index 9a4b65b..c1e57ad 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionAdvisorDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionAdvisorDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.distributed.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.atLeastOnce;
@@ -26,10 +27,8 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -118,17 +117,17 @@ public class DistributionAdvisorDUnitTest extends JUnit4DistributedTestCase {
     thread.start();
 
     try {
-      Awaitility.await().atMost(15, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         verify(logger, atLeastOnce()).warn(isA(String.class), isA(Long.class));
       });
-      Awaitility.await().atMost(15, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         verify(logger, atLeastOnce()).fatal(isA(String.class), isA(Long.class));
       });
       advisor.endOperation(membershipVersion);
-      Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         verify(logger, atLeastOnce()).info("Wait for current operations completed");
       });
-      Awaitility.await().atMost(15, TimeUnit.SECONDS).until(() -> !thread.isAlive());
+      await().until(() -> !thread.isAlive());
     } finally {
       if (thread.isAlive()) {
         advisor.endOperation(membershipVersion);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ElderMemberDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ElderMemberDistributedTest.java
index 2de0c05..516b356 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ElderMemberDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/ElderMemberDistributedTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.distributed.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -107,7 +106,7 @@ public class ElderMemberDistributedTest {
   private static InternalDistributedMember assertIsElderAndGetId() {
     DistributionManager distributionManager =
         ClusterStartupRule.getCache().getInternalDistributedSystem().getDistributionManager();
-    Awaitility.waitAtMost(1, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> assertThat(distributionManager.isElder()).isTrue());
     return distributionManager.getElderId();
   }
@@ -117,7 +116,7 @@ public class ElderMemberDistributedTest {
         (ClusterDistributionManager) ClusterStartupRule.getCache().getInternalDistributedSystem()
             .getDistributionManager();
     assertThat(distributionManager.isElder()).isFalse();
-    Awaitility.await("Choosing elder stopped for too long").atMost(10, TimeUnit.SECONDS)
+    await("Choosing elder stopped for too long")
         .until(() -> {
           distributionManager.waitForElder(elderId);
           return true;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
index a245127..d977f0f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/deadlock/GemFireDeadlockDetectorDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.distributed.internal.deadlock;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -30,7 +31,6 @@ import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.DataSerializable;
@@ -129,7 +129,7 @@ public class GemFireDeadlockDetectorDUnitTest extends JUnit4CacheTestCase {
     AsyncInvocation async2 = lockTheLocks(vm1, member1, gateOnMember2, gateOnMember1);
     try {
       final LinkedList<Dependency> deadlockHolder[] = new LinkedList[1];
-      Awaitility.await("waiting for deadlock").atMost(20, TimeUnit.SECONDS).until(() -> {
+      await("waiting for deadlock").until(() -> {
         GemFireDeadlockDetector detect = new GemFireDeadlockDetector();
         LinkedList<Dependency> deadlock = detect.find().findCycle();
         if (deadlock != null) {
@@ -187,10 +187,10 @@ public class GemFireDeadlockDetectorDUnitTest extends JUnit4CacheTestCase {
     AsyncInvocation async1 = lockTheDLocks(vm0, "one", "two");
     AsyncInvocation async2 = lockTheDLocks(vm1, "two", "one");
 
-    Awaitility.await("waiting for locks to be acquired").atMost(60, TimeUnit.SECONDS)
+    await("waiting for locks to be acquired")
         .untilAsserted(() -> assertTrue(getBlackboard().isGateSignaled("one")));
 
-    Awaitility.await("waiting for locks to be acquired").atMost(60, TimeUnit.SECONDS)
+    await("waiting for locks to be acquired")
         .untilAsserted(() -> assertTrue(getBlackboard().isGateSignaled("two")));
 
     GemFireDeadlockDetector detect = new GemFireDeadlockDetector();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/locks/DLockServiceCharacterizationTests.java b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/locks/DLockServiceCharacterizationTests.java
index 514d162..0c53a21 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/locks/DLockServiceCharacterizationTests.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/locks/DLockServiceCharacterizationTests.java
@@ -18,17 +18,15 @@ package org.apache.geode.distributed.internal.locks;
 import static java.lang.Thread.currentThread;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.DistributedLockService.getServiceNamed;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.catchThrowable;
-import static org.awaitility.Awaitility.await;
 
 import java.util.Properties;
 import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -138,14 +136,14 @@ public class DLockServiceCharacterizationTests {
 
     // otherThread should be waiting for lock.
 
-    await("other thread is waiting on this lock").atMost(3, TimeUnit.SECONDS)
+    await("other thread is waiting on this lock")
         .until(() -> key1.getUsageCount() == 2);
     assertThat(key1.getRecursion()).isEqualTo(0);
     assertThat(key1.getThread()).isEqualTo(currentThread());
 
     dLockService.unlock("key1");
 
-    await("other thread has acquired this lock").atMost(3, TimeUnit.SECONDS)
+    await("other thread has acquired this lock")
         .until(() -> key1.getThread() == otherThread);
 
     assertThat(key1.getRecursion()).isEqualTo(0);
@@ -242,21 +240,21 @@ public class DLockServiceCharacterizationTests {
         lockAcquired.set(true);
       })).isNull();
 
-      Awaitility.await().atMost(5, TimeUnit.MINUTES).until(serviceDestroyed::get);
+      await().until(serviceDestroyed::get);
       service.unlock(lockName);
       return null;
     };
 
     // start a new thread to wait for lock
     Callable<Void> getBlocked = () -> {
-      Awaitility.await("wait for lock to be acquired").atMost(5, TimeUnit.MINUTES).until(
+      await("wait for lock to be acquired").until(
           lockAcquired::get);
       service.lock(lockName, -1, -1);
       return null;
     };
 
     Callable<Void> destroyLockService = () -> {
-      Awaitility.await("lock acquired; we don't want to break that").atMost(25, TimeUnit.SECONDS)
+      await("lock acquired; we don't want to break that")
           .until(lockAcquired::get);
       DistributedLockService.destroy(serviceName);
       serviceDestroyed.set(true);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
index 0039492..1c4e841 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CacheAdvisorDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -23,9 +24,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.AttributesFactory;
@@ -222,8 +221,7 @@ public class CacheAdvisorDUnitTest extends JUnit4CacheTestCase {
       });
     }
 
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(
             () -> assertEquals(expected, rgn.getCacheDistributionAdvisor().adviseNetLoad()));
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CleanupFailedInitWithDiskFilesRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CleanupFailedInitWithDiskFilesRegressionTest.java
index 467e061..b3c0b36 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CleanupFailedInitWithDiskFilesRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/CleanupFailedInitWithDiskFilesRegressionTest.java
@@ -14,12 +14,11 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 
@@ -154,6 +153,6 @@ public class CleanupFailedInitWithDiskFilesRegressionTest extends CacheTestCase
   }
 
   private void validateCleanupOfDiskFiles() {
-    await().atMost(1, MINUTES).untilAsserted(() -> assertThat(server2Disk2.listFiles()).hasSize(0));
+    await().untilAsserted(() -> assertThat(server2Disk2.listFiles()).hasSize(0));
   }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClearDuringNetSearchOplogRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClearDuringNetSearchOplogRegressionTest.java
index 534adb3..735263a 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClearDuringNetSearchOplogRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClearDuringNetSearchOplogRegressionTest.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.EvictionAttributes.createLRUEntryAttributes;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -158,7 +157,7 @@ public class ClearDuringNetSearchOplogRegressionTest extends CacheTestCase {
     // start getThread
     getter.start();
 
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(() -> verify(observer, times(1)).afterSettingDiskRef());
 
     // This test appears to be testing a problem with the non-RVV
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
index 1ef00c8..3fbe771 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDUnitTest.java
@@ -18,6 +18,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.OFF_HEAP_MEMORY_SIZE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.LogWriterUtils.getDUnitLogLevel;
 import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter;
 import static org.junit.Assert.assertEquals;
@@ -46,7 +47,6 @@ import javax.transaction.Synchronization;
 import javax.transaction.UserTransaction;
 
 import org.assertj.core.api.Assertions;
-import org.awaitility.Awaitility;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -4023,7 +4023,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
       createSubscriptionRegion(offheap, regionName, copies, totalBuckets);
       Region r = getCache().getRegion(regionName);
 
-      Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         List<Integer> ids = ((PartitionedRegion) r).getLocalBucketsListTestOnly();
         assertFalse(ids.isEmpty());
       });
@@ -4071,12 +4071,12 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
     });
 
     client1.invoke(() -> {
-      Awaitility.await().atMost(30, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(1, getClientCacheListnerEventCount(regionName)));
     });
 
     client2.invoke(() -> {
-      Awaitility.await().atMost(30, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(1, getClientCacheListnerEventCount(regionName)));
     });
   }
@@ -4103,8 +4103,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
 
   Object verifyProxyServerChanged(final TXStateProxyImpl tx, final DistributedMember newProxy) {
     try {
-      Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-          .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+      await()
           .until(() -> !((TXState) tx.realDeal).getProxyServer().equals(newProxy));
       return null;
     } finally {
@@ -4174,8 +4173,7 @@ public class ClientServerTransactionDUnitTest extends RemoteTransactionDUnitTest
     // hostedTXStates map. Client finishes the JTA once it gets the reply from server.
     // There exists a race that TXState is yet to be removed when client JTA tx is finished.
     // Add the wait before checking the TXState.
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> Assertions
             .assertThat(txmgr.getTransactionsForClient((InternalDistributedMember) clientId).size())
             .isEqualTo(0));
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
index c8acb15..031d2a1 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverDistributedTest.java
@@ -14,12 +14,11 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase.getBlackboard;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.Serializable;
@@ -427,7 +426,7 @@ public class ClientServerTransactionFailoverDistributedTest implements Serializa
       }
     });
 
-    await().atMost(60, SECONDS).until(() -> getBlackboard().isGateSignaled("bounce"));
+    await().until(() -> getBlackboard().isGateSignaled("bounce"));
     server1.invoke(() -> {
       DistributionMessageObserver.setInstance(null);
     });
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
index b08c3a0..3b72c2d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionFailoverWithMixedVersionServersDistributedTest.java
@@ -18,6 +18,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTE
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_NETWORK_PARTITION_DETECTION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -30,9 +31,7 @@ import java.net.InetAddress;
 import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.FutureTask;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -358,7 +357,7 @@ public class ClientServerTransactionFailoverWithMixedVersionServersDistributedTe
       region = cacheRule.getCache().getRegion(regionName);
     }
     int numOfEntries = numOfOperations * numOfTransactions;
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertThat(region.size()).isEqualTo(numOfEntries));
     for (int i = 1; i <= numOfEntries; i++) {
       LogService.getLogger().info("region get key {} value {} ", i, region.get(i));
@@ -414,14 +413,14 @@ public class ClientServerTransactionFailoverWithMixedVersionServersDistributedTe
 
   private void verifyTransactionAreStarted(int numOfTransactions) {
     TXManagerImpl txManager = cacheRule.getCache().getTxManager();
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertThat(txManager.hostedTransactionsInProgressForTest())
             .isEqualTo(numOfTransactions));
   }
 
   private void verifyTransactionAreExpired() {
     TXManagerImpl txManager = cacheRule.getCache().getTxManager();
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(
             () -> assertThat(txManager.hostedTransactionsInProgressForTest()).isEqualTo(0));
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
index 88e8948..579bf54 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/EntriesDoNotExpireDuringGiiRegressionTest.java
@@ -14,12 +14,11 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.ExpirationAction.INVALIDATE;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.hamcrest.core.Is.is;
 
 import java.io.Serializable;
@@ -127,7 +126,7 @@ public class EntriesDoNotExpireDuringGiiRegressionTest implements Serializable {
     // wait for profile of getInitialImage cache to show up
     CacheDistributionAdvisor advisor = ((DistributedRegion) region).getCacheDistributionAdvisor();
     int expectedProfiles = 1;
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(
             () -> assertThat(numberProfiles(advisor)).isGreaterThanOrEqualTo(expectedProfiles));
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FireAndForgetFunctionOnAllServersDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FireAndForgetFunctionOnAllServersDUnitTest.java
index 71df921..e596f9a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FireAndForgetFunctionOnAllServersDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FireAndForgetFunctionOnAllServersDUnitTest.java
@@ -15,8 +15,7 @@
 
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 
 import org.junit.Test;
 
@@ -96,7 +95,7 @@ public class FireAndForgetFunctionOnAllServersDUnitTest extends LocatorTestBase
 
       PoolImpl pool = (PoolImpl) pool1;
 
-      await().atMost(60, SECONDS)
+      await()
           .untilAsserted(() -> Assert.assertEquals(1, pool.getCurrentServers().size()));
 
       String regionName = "R1";
@@ -106,7 +105,7 @@ public class FireAndForgetFunctionOnAllServersDUnitTest extends LocatorTestBase
       // Using Awatility, if the condition is not met during the timeout, a
       // ConditionTimeoutException will be thrown. This makes analyzing the failure much simpler
       // Step 5. Assert for the region keyset size with 1.
-      await().atMost(60, SECONDS)
+      await()
           .untilAsserted(() -> Assert.assertEquals(1, region1.keySetOnServer().size()));
 
       region1.clear();
@@ -117,19 +116,19 @@ public class FireAndForgetFunctionOnAllServersDUnitTest extends LocatorTestBase
 
       // Step 7. Execute the same function to put DistributedMemberID into above created replicated
       // region.
-      await().atMost(60, SECONDS)
+      await()
           .untilAsserted(() -> Assert.assertEquals(1, pool.getCurrentServers().size()));
       dataSet = FunctionService.onServers(pool1);
       dataSet.setArguments(regionName).execute(function);
 
-      await().atMost(60, SECONDS)
+      await()
           .untilAsserted(() -> Assert.assertEquals(2, pool.getCurrentServers().size()));
 
       // Using Awatility, if the condition is not met during the timeout, a
       // ConditionTimeoutException will be thrown. This makes analyzing the failure much simpler
       // Step 8. Assert for the region keyset size with 2, since above function was executed on 2
       // servers.
-      await().atMost(60, SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         Assert.assertEquals(2, region1.keySetOnServer().size());
       });
 
@@ -143,13 +142,13 @@ public class FireAndForgetFunctionOnAllServersDUnitTest extends LocatorTestBase
       dataSet = FunctionService.onServers(pool1);
       dataSet.setArguments(regionName).execute(function);
 
-      await().atMost(60, SECONDS)
+      await()
           .untilAsserted(() -> Assert.assertEquals(1, pool.getCurrentServers().size()));
 
       // Using Awatility, if the condition is not met during the timeout, a
       // ConditionTimeoutException will be thrown. This makes analyzing the failure much simpler
       // Step 10. Assert for the region keyset size with 1, since only one server was running.
-      await().atMost(60, SECONDS).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         Assert.assertEquals(1, region1.keySetOnServer().size());
       });
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
index 14cda43..7a4fc20 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/FixedPRSinglehopDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -29,9 +30,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.AttributesFactory;
@@ -299,7 +298,7 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
       getFromPartitionedRegionsFor3Qs();
       // Server 1 is actually primary for both Q1 and Q2, since there is no FPA server with
       // primary set to true.
-      Awaitility.await().atMost(15, TimeUnit.SECONDS)
+      await()
           .until(() -> (server1.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 6)
               && (server2.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 3));
 
@@ -328,7 +327,7 @@ public class FixedPRSinglehopDUnitTest extends JUnit4CacheTestCase {
 
       putIntoPartitionedRegions();
       // Wait to make sure that the buckets have actually moved.
-      Awaitility.await().atMost(15, TimeUnit.SECONDS)
+      await()
           .until(() -> (server1.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 3)
               && (server2.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 3)
               && (server4.invoke(FixedPRSinglehopDUnitTest::primaryBucketsOnServer) == 6));
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRAccessorWithOverflowRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRAccessorWithOverflowRegressionTest.java
index e8da853..d8a3dc2 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRAccessorWithOverflowRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PRAccessorWithOverflowRegressionTest.java
@@ -14,12 +14,11 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.EvictionAction.OVERFLOW_TO_DISK;
 import static org.apache.geode.cache.EvictionAttributes.createLRUEntryAttributes;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 
@@ -100,7 +99,7 @@ public class PRAccessorWithOverflowRegressionTest extends CacheTestCase {
     });
 
     // datastore should create diskstore
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(datastoreDiskDir.listFiles().length).isGreaterThan(0));
 
     // accessor should not create a diskstore
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
index 2d9ec2b..02b865f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PREntryIdleExpirationDistributedTest.java
@@ -17,9 +17,9 @@ package org.apache.geode.internal.cache;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.ExpirationAction.DESTROY;
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -107,13 +107,13 @@ public class PREntryIdleExpirationDistributedTest implements Serializable {
 
     member2.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
     });
 
     member1.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
 
       ExpiryTask.permitExpiration();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCacheCloseDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCacheCloseDUnitTest.java
index 089e36f..277c571 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCacheCloseDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCacheCloseDUnitTest.java
@@ -14,9 +14,8 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import org.junit.Test;
 
@@ -53,7 +52,7 @@ public class PartitionedRegionCacheCloseDUnitTest extends CacheTestCase {
     vm1.invoke(() -> {
       Region prRootRegion = PartitionedRegionHelper.getPRRoot(getCache());
 
-      await().atMost(2, MINUTES).untilAsserted(() -> {
+      await().untilAsserted(() -> {
         PartitionRegionConfig partitionRegionConfig =
             (PartitionRegionConfig) prRootRegion.get("#" + REGION_NAME);
         assertThat(partitionRegionConfig.getNodes()).hasSize(1);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCreationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCreationDUnitTest.java
index e28df99..d1d8e5f 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCreationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionCreationDUnitTest.java
@@ -17,11 +17,11 @@ package org.apache.geode.internal.cache;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.internal.cache.PartitionedRegionHelper.PR_ROOT_REGION_NAME;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -403,7 +403,7 @@ public class PartitionedRegionCreationDUnitTest extends CacheTestCase {
     // wait for put
     Region region = cache.getRegion(regionName);
 
-    await().atMost(30, SECONDS).until(() -> region.getEntry("start") != null);
+    await().until(() -> region.getEntry("start") != null);
 
     for (int i = 0; i < count; ++i) {
       Region partitionedRegion = regionFactory.create(prPrefixName + i);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionDestroyDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionDestroyDUnitTest.java
index 723ee22..0d896b3 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionDestroyDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionDestroyDUnitTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.util.concurrent.CountDownLatch;
@@ -177,7 +176,7 @@ public class PartitionedRegionDestroyDUnitTest extends CacheTestCase {
     InternalCache cache = getCache();
     Region rootRegion = PartitionedRegionHelper.getPRRoot(cache);
 
-    await().atMost(1, MINUTES).untilAsserted(() -> assertThat(cache.rootRegions()).isEmpty());
+    await().untilAsserted(() -> assertThat(cache.rootRegions()).isEmpty());
 
     assertEquals(
         "ThePrIdToPR Map size is:" + PartitionedRegion.getPrIdToPR().size() + " instead of 0",
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHAFailureAndRecoveryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHAFailureAndRecoveryDUnitTest.java
index 8c56104..db758b1 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHAFailureAndRecoveryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHAFailureAndRecoveryDUnitTest.java
@@ -16,12 +16,11 @@ package org.apache.geode.internal.cache;
 
 import static java.lang.Boolean.FALSE;
 import static java.lang.Boolean.TRUE;
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
@@ -234,7 +233,7 @@ public class PartitionedRegionHAFailureAndRecoveryDUnitTest extends CacheTestCas
         PartitionedRegionStats prs = partitionedRegion.getPrStats();
 
         // Wait for recovery
-        await().atMost(2, MINUTES)
+        await()
             .untilAsserted(() -> assertThat(prs.getLowRedundancyBucketCount()).isEqualTo(0));
       });
       return true;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionLowBucketRedundancyDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionLowBucketRedundancyDistributedTest.java
index 7ed32e2..7812bb3 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionLowBucketRedundancyDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionLowBucketRedundancyDistributedTest.java
@@ -16,12 +16,11 @@ package org.apache.geode.internal.cache;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -197,12 +196,12 @@ public class PartitionedRegionLowBucketRedundancyDistributedTest implements Seri
   private void waitForLowBucketRedundancyCount(int count) {
     PartitionedRegion region =
         (PartitionedRegion) ClusterStartupRule.getCache().getRegion(regionName);
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(
+    await().untilAsserted(
         () -> assertThat(region.getPrStats().getLowRedundancyBucketCount()).isEqualTo(count));
   }
 
   private void waitForMembers(int count) {
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(
+    await().untilAsserted(
         () -> assertThat(ClusterStartupRule.getCache().getMembers().size()).isEqualTo(count));
   }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
index 7751be2..44d3b92 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionSingleHopDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertFalse;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
@@ -36,9 +37,7 @@ import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -392,11 +391,11 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     region.put(new Integer(2), "create2");
     region.put(new Integer(3), "create3");
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.isRefreshMetadataTestOnly() == true);
 
     // make sure all fetch tasks are completed
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.getRefreshTaskCount_TEST_ONLY() == 0);
 
     cms.satisfyRefreshMetadata_TEST_ONLY(false);
@@ -405,7 +404,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     region.put(new Integer(2), "create2");
     region.put(new Integer(3), "create3");
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.isRefreshMetadataTestOnly() == false);
   }
 
@@ -431,7 +430,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     region.destroy(new Integer(2));
     region.destroy(new Integer(3));
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.isRefreshMetadataTestOnly() == true);
   }
 
@@ -457,7 +456,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     region.get(new Integer(2));
     region.get(new Integer(3));
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.isRefreshMetadataTestOnly() == true);
     printMetadata();
     Wait.pause(5000);
@@ -494,7 +493,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
       region.put(new Integer(i), new Integer(i + 1));
     }
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.isRefreshMetadataTestOnly() == true);
 
     // kill server
@@ -704,7 +703,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
     final Map<String, ClientPartitionAdvisor> regionMetaData = cms.getClientPRMetadata_TEST_ONLY();
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> regionMetaData.size() == 1);
+    await().until(() -> regionMetaData.size() == 1);
 
     assertEquals(1, regionMetaData.size());
     assertTrue(regionMetaData.containsKey(region.getFullPath()));
@@ -725,7 +724,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
       }
     } while (System.currentTimeMillis() - start < 60000);
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> (prMetaData.getBucketServerLocationsMap_TEST_ONLY().size() == 4));
     // assertIndexDetailsEquals(4/*numBuckets*/,
     // prMetaData.getBucketServerLocationsMap_TEST_ONLY().size());
@@ -746,12 +745,12 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
     final Map<String, ClientPartitionAdvisor> regionMetaData = cms.getClientPRMetadata_TEST_ONLY();
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> (regionMetaData.size() == 1));
+    await().until(() -> (regionMetaData.size() == 1));
     assertTrue(regionMetaData.containsKey(region.getFullPath()));
 
     final ClientPartitionAdvisor prMetaData = regionMetaData.get(region.getFullPath());
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> (prMetaData.getBucketServerLocationsMap_TEST_ONLY().size() == 4));
   }
 
@@ -909,7 +908,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     prMetaData = regionMetaData.get(region.getFullPath());
     final Map<Integer, List<BucketServerLocation66>> clientMap3 =
         prMetaData.getBucketServerLocationsMap_TEST_ONLY();
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> (clientMap3.size() == 4));
+    await().until(() -> (clientMap3.size() == 4));
     for (Entry entry : clientMap.entrySet()) {
       assertEquals(2, ((List) entry.getValue()).size());
     }
@@ -951,7 +950,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
 
     final Map<String, ClientPartitionAdvisor> regionMetaData = cms.getClientPRMetadata_TEST_ONLY();
 
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> (regionMetaData.size() == 1));
+    await().until(() -> (regionMetaData.size() == 1));
 
     assertEquals(1, regionMetaData.size());
     assertTrue(regionMetaData.containsKey(region.getFullPath()));
@@ -977,7 +976,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     ClientPartitionAdvisor prMetaData = regionMetaData.get(region.getFullPath());
     final Map<Integer, List<BucketServerLocation66>> clientMap =
         prMetaData.getBucketServerLocationsMap_TEST_ONLY();
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> (clientMap.size() == 4));
+    await().until(() -> (clientMap.size() == 4));
     for (Entry entry : clientMap.entrySet()) {
       assertEquals(2, ((List) entry.getValue()).size());
     }
@@ -1001,7 +1000,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     assertEquals(1, regionMetaData.size());
     assertTrue(regionMetaData.containsKey(region.getFullPath()));
     assertEquals(4/* numBuckets */, clientMap.size());
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       int bucketId = -1;
       int size = -1;
       List globalList = new ArrayList();
@@ -1040,7 +1039,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
     member3.invoke(() -> PartitionedRegionSingleHopDUnitTest.waitForLocalBucketsCreation(4));
 
     createClient(port0, port1, port2, port3);
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> fetchAndValidateMetadata());
+    await().until(() -> fetchAndValidateMetadata());
 
     member0.invoke(() -> PartitionedRegionSingleHopDUnitTest.closeCacheAndDisconnect());
     member1.invoke(() -> PartitionedRegionSingleHopDUnitTest.closeCacheAndDisconnect());
@@ -1941,7 +1940,7 @@ public class PartitionedRegionSingleHopDUnitTest extends JUnit4CacheTestCase {
   private void verifyMetadata() {
     ClientMetadataService cms = ((GemFireCacheImpl) cache).getClientMetadataService();
     // make sure all fetch tasks are completed
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> cms.getRefreshTaskCount_TEST_ONLY() == 0);
 
     // final Map<String, ClientPartitionAdvisor> regionMetaData = cms
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
index ed8e587..d05ca9c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionStatsDUnitTest.java
@@ -15,10 +15,9 @@
 package org.apache.geode.internal.cache;
 
 import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.util.concurrent.TimeoutException;
 
@@ -181,7 +180,7 @@ public class PartitionedRegionStatsDUnitTest extends CacheTestCase {
       Cache cache = getCache();
       PartitionedRegion region = (PartitionedRegion) cache.getRegion(regionName);
       PartitionedRegionStats prStats = region.getPrStats();
-      await().atMost(30, SECONDS)
+      await()
           .untilAsserted(() -> assertThat(prStats.getLowRedundancyBucketCount()).isEqualTo(0));
     });
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
index 32b242d..670622f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionRecoveryDUnitTest.java
@@ -14,12 +14,11 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.io.IOException;
@@ -227,7 +226,7 @@ public class PersistentRegionRecoveryDUnitTest extends JUnit4DistributedTestCase
                   logger.info("##### Before vm0 is bounced.");
                   getBlackboard().signalGate("bounce");
                   // vm0.bounceForcibly();
-                  await().atMost(2, MINUTES).until(() -> cacheRule.getCache().isClosed());
+                  await().until(() -> cacheRule.getCache().isClosed());
                   logger.info("##### After vm0 is bounced.");
                 } else {
                   logger.info("#### Region path: " + rim.regionPath);
@@ -304,7 +303,7 @@ public class PersistentRegionRecoveryDUnitTest extends JUnit4DistributedTestCase
                   logger.info("##### Before vm0 is bounced.");
                   getBlackboard().signalGate("bounce");
                   // vm0.bounceForcibly();
-                  await().atMost(2, MINUTES).until(() -> cacheRule.getCache().isClosed());
+                  await().until(() -> cacheRule.getCache().isClosed());
                   logger.info("##### After vm0 is bounced.");
                 } else {
                   logger.info("#### Region path: " + rim.regionPath);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionTransactionDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionTransactionDUnitTest.java
index 67959dc..8fd624a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionTransactionDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PersistentRegionTransactionDUnitTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
 import java.util.stream.IntStream;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -147,7 +146,7 @@ public class PersistentRegionTransactionDUnitTest extends JUnit4CacheTestCase {
     putData(server);
     server.invoke(() -> {
       LocalRegion region = (LocalRegion) getCache().getRegion(REGIONNAME);
-      Awaitility.await().atMost(10, SECONDS)
+      await()
           .untilAsserted(() -> assertThat(region.getValueInVM(KEY)).isNull());
       getCache().getCacheTransactionManager().begin();
       try {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
index fb8a248..bcb992a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ReplicateEntryIdleExpirationDistributedTest.java
@@ -17,9 +17,9 @@ package org.apache.geode.internal.cache;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.ExpirationAction.DESTROY;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -106,13 +106,13 @@ public class ReplicateEntryIdleExpirationDistributedTest implements Serializable
 
     member2.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
     });
 
     member1.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
 
       ExpiryTask.permitExpiration();
@@ -151,13 +151,13 @@ public class ReplicateEntryIdleExpirationDistributedTest implements Serializable
 
     member2.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
     });
 
     member1.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(regionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
 
       ExpiryTask.permitExpiration();
@@ -190,13 +190,13 @@ public class ReplicateEntryIdleExpirationDistributedTest implements Serializable
 
     member2.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(evictionRegionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
     });
 
     member1.invoke(() -> {
       Region<String, String> region = cacheRule.getCache().getRegion(evictionRegionName);
-      await().atMost(30, SECONDS).until(() -> region.containsKey(KEY));
+      await().until(() -> region.containsKey(KEY));
       assertThat(region.containsKey(KEY)).isTrue();
 
       ExpiryTask.permitExpiration();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SingleHopStatsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SingleHopStatsDUnitTest.java
index 71b71ac..74ef351 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SingleHopStatsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/SingleHopStatsDUnitTest.java
@@ -14,8 +14,10 @@
  */
 package org.apache.geode.internal.cache;
 
+import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -23,9 +25,7 @@ import static org.junit.Assert.assertTrue;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -293,8 +293,7 @@ public class SingleHopStatsDUnitTest extends JUnit4CacheTestCase {
         cms = ((GemFireCacheImpl) cache).getClientMetadataService();
         // since PR metadata is fetched in a background executor thread
         // we need to wait for it to arrive for a bit
-        Awaitility.await().timeout(120, TimeUnit.SECONDS).pollDelay(100, TimeUnit.MILLISECONDS)
-            .pollInterval(500, TimeUnit.MILLISECONDS).until(() -> regionMetaData.size() == 1);
+        await().timeout(120, SECONDS).until(() -> regionMetaData.size() == 1);
 
         assertTrue(regionMetaData.containsKey(region.getFullPath()));
         regionMetaData.get(region.getFullPath());
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
index ada1ca9..0b8d2ff 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/IncrementalBackupDistributedTest.java
@@ -18,10 +18,10 @@ import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.commons.io.FileUtils.listFiles;
 import static org.apache.commons.io.filefilter.DirectoryFileFilter.DIRECTORY;
 import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getController;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -263,7 +263,7 @@ public class IncrementalBackupDistributedTest implements Serializable {
     PersistentID missingMember = vm0.invoke(() -> getPersistentID(diskStoreName1));
     vm0.invoke(() -> cacheRule.getCache().close());
 
-    await().atMost(2, MINUTES)
+    await()
         .until(() -> vm1.invoke(() -> getMissingPersistentMembers().contains(missingMember)));
 
     // Perform performBackupBaseline and make sure that list of offline disk stores contains our
@@ -282,7 +282,7 @@ public class IncrementalBackupDistributedTest implements Serializable {
     vm0.invoke(() -> createCache(diskDirRule.getDiskDirFor(vm0)));
 
     // After reconnecting make sure the other members agree that the missing member is back online.
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(
             () -> assertThat(getMissingPersistentMembers()).doesNotContain(missingMember));
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
index 28ed17f..614430b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/backup/PrepareAndFinishBackupDistributedTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache.backup;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getController;
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -37,7 +38,6 @@ import java.util.concurrent.TimeoutException;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.stream.Collectors;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -207,7 +207,7 @@ public class PrepareAndFinishBackupDistributedTest {
 
     ReentrantLock backupLock = ((LocalRegion) region).getDiskStore().getBackupLock();
     Future<Void> future = CompletableFuture.runAsync(function);
-    Awaitility.await().atMost(5, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertThat(backupLock.getQueueLength()).isGreaterThanOrEqualTo(0));
 
     new FinishBackupStep(dm, dm.getId(), dm.getCache(), recipients, new FinishBackupFactory())
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/event/EventTrackerDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/event/EventTrackerDUnitTest.java
index 7e49b5e..b5a3a47 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/event/EventTrackerDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/event/EventTrackerDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache.event;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -22,9 +23,7 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.AttributesFactory;
@@ -448,8 +447,7 @@ public class EventTrackerDUnitTest extends JUnit4CacheTestCase {
   }
 
   private void waitEntryIsLocal(int i) {
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(30, TimeUnit.SECONDS)
+    await()
         .until(() -> getCache().getRegion(getName()).getEntry(i) != null);
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/SingleHopGetAllPutAllDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/SingleHopGetAllPutAllDUnitTest.java
index 238ed1a..39ab678 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/SingleHopGetAllPutAllDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/execute/SingleHopGetAllPutAllDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache.execute;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
@@ -21,9 +22,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -240,9 +239,9 @@ public class SingleHopGetAllPutAllDUnitTest extends PRClientServerTestBase {
 
     final Map<String, ClientPartitionAdvisor> regionMetaData = cms.getClientPRMetadata_TEST_ONLY();
 
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> regionMetaData.size() > 0);
+    await().until(() -> regionMetaData.size() > 0);
     assertThat(regionMetaData).containsKey(region.getFullPath());
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> {
+    await().until(() -> {
       ClientPartitionAdvisor prMetaData = regionMetaData.get(region.getFullPath());
       assertThat(prMetaData).isNotNull();
       assertThat(prMetaData.adviseRandomServerLocation()).isNotNull();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/EventIdOptimizationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/EventIdOptimizationDUnitTest.java
index 16e0087..7c18ea4 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/EventIdOptimizationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/EventIdOptimizationDUnitTest.java
@@ -14,10 +14,9 @@
  */
 package org.apache.geode.internal.cache.ha;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -409,7 +408,7 @@ public class EventIdOptimizationDUnitTest extends JUnit4DistributedTestCase {
    * Waits for the listener to receive all events and validates that no exception occurred in client
    */
   public static void verifyEventIdsOnClient2() {
-    await("Waiting for proceedForValidation to be true").atMost(2, MINUTES)
+    await("Waiting for proceedForValidation to be true")
         .until(() -> proceedForValidation);
 
     LogWriterUtils.getLogWriter().info("Starting validation on client2");
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
index 0e896bb..25df8cb 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARQueueNewImplDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.ha;
 import static org.apache.geode.distributed.ConfigurationProperties.DELTA_PROPAGATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
 import static org.apache.geode.test.dunit.Assert.assertNull;
@@ -31,9 +32,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -396,7 +395,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
   }
 
   private void ValidateRegionSizes(int port) {
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       Region region = cache.getRegion("/" + regionName);
       Region msgsRegion = cache.getRegion(CacheServerImpl.generateNameForClientMsgsRegion(port));
       int clientMsgRegionSize = msgsRegion.size();
@@ -1076,7 +1075,7 @@ public class HARQueueNewImplDUnitTest extends JUnit4DistributedTestCase {
 
       Iterator iter = msgsRegion.entrySet().iterator();
       while (iter.hasNext()) {
-        Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
+        await().untilAsserted(() -> {
           Region.Entry entry = (Region.Entry) iter.next();
           HAEventWrapper wrapper = (HAEventWrapper) entry.getKey();
           ClientUpdateMessage cum = (ClientUpdateMessage) entry.getValue();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java
index e33f049..d9732a2 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache.ha;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
 import static org.apache.geode.test.dunit.Assert.assertNull;
@@ -28,9 +29,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -684,13 +683,13 @@ public class HARegionQueueDUnitTest extends JUnit4DistributedTestCase {
           }
         };
 
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertTrue((Boolean) vm0.invoke(guaranteeOperationsOccured)));
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertTrue((Boolean) vm1.invoke(guaranteeOperationsOccured)));
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertTrue((Boolean) vm2.invoke(guaranteeOperationsOccured)));
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertTrue((Boolean) vm3.invoke(guaranteeOperationsOccured)));
 
     // In case of blocking HARegionQueue do some extra puts so that the
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
index a4bdeb5..f524c38 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueExpiryRegressionTest.java
@@ -14,17 +14,16 @@
  */
 package org.apache.geode.internal.cache.ha;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache30.ClientServerTestCase.configureConnectionPool;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.internal.cache.tier.sockets.ConflationDUnitTestHelper.setIsSlowStart;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.GEODE_PREFIX;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.HA_REGION_QUEUE_EXPIRY_TIME_PROPERTY;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -190,7 +189,7 @@ public class HARegionQueueExpiryRegressionTest extends CacheTestCase {
    * Waits for the listener to receive all events
    */
   private void validateEventCountAtClient() {
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(() -> verify(spyCacheListener, times(PUT_COUNT)).afterCreate(any()));
   }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
index eee10a2..286c6bf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueSizeRegressionTest.java
@@ -14,13 +14,13 @@
  */
 package org.apache.geode.internal.cache.ha;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.client.ClientRegionShortcut.CACHING_PROXY;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_ID;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_TIMEOUT;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getHostName;
@@ -37,7 +37,6 @@ import java.util.Collection;
 import java.util.Properties;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -193,7 +192,7 @@ public class HARegionQueueSizeRegressionTest implements Serializable {
   }
 
   private void awaitProxyIsPaused() {
-    Awaitility.await().atMost(60, SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       CacheClientNotifier ccn = CacheClientNotifier.getInstance();
       Collection<CacheClientProxy> ccProxies = ccn.getClientProxies();
 
@@ -221,13 +220,13 @@ public class HARegionQueueSizeRegressionTest implements Serializable {
   }
 
   private void awaitCreates(int expectedCreates) {
-    Awaitility.await().atMost(60, SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       verify(spyCacheListener, times(expectedCreates)).afterCreate(any());
     });
   }
 
   private void verifyStats() {
-    Awaitility.await().atMost(60, SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       CacheClientNotifier ccn = CacheClientNotifier.getInstance();
       CacheClientProxy ccp = ccn.getClientProxies().iterator().next();
       // TODO: consider verifying ccp.getQueueSize()
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
index 0a5e268..47b9d4d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HARegionQueueThreadIdExpiryRegressionTest.java
@@ -14,16 +14,15 @@
  */
 package org.apache.geode.internal.cache.ha;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.client.ClientRegionShortcut.CACHING_PROXY;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.GEODE_PREFIX;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.HA_REGION_QUEUE_EXPIRY_TIME_PROPERTY;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.THREAD_ID_EXPIRY_TIME_PROPERTY;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -170,7 +169,7 @@ public class HARegionQueueThreadIdExpiryRegressionTest implements Serializable {
   }
 
   private void awaitToVerifyStatsAfterExpiration(int numOfEvents) {
-    await().atMost(2, MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       verifyStatsAfterExpiration(numOfEvents);
     });
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HASlowReceiverDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HASlowReceiverDUnitTest.java
index 6bcdcbf..3e515f9 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HASlowReceiverDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/HASlowReceiverDUnitTest.java
@@ -17,14 +17,13 @@ package org.apache.geode.internal.cache.ha;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.REMOVE_UNRESPONSIVE_CLIENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.net.SocketException;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -228,7 +227,7 @@ public class HASlowReceiverDUnitTest extends JUnit4DistributedTestCase {
   }
 
   public static void checkRedundancyLevel(final Integer redundantServers) {
-    Awaitility.await().atMost(20, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       // check for slow client queue is removed or not.
       assertTrue(
           "Expected redundant count (" + pool.getRedundantNames().size() + ") to become "
@@ -254,7 +253,7 @@ public class HASlowReceiverDUnitTest extends JUnit4DistributedTestCase {
 
     putEntries();
 
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       // check for slow client queue is removed or not.
       assertTrue("isUnresponsiveClientRemoved is false, but should be true " + "after 60 seconds",
           isUnresponsiveClientRemoved);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/PreferSerializedHARegionQueueTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/PreferSerializedHARegionQueueTest.java
index a212727..ee48664 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/PreferSerializedHARegionQueueTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ha/PreferSerializedHARegionQueueTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.cache.ha;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.Region;
@@ -156,14 +155,14 @@ public class PreferSerializedHARegionQueueTest extends JUnit4CacheTestCase {
 
   public void waitForCacheClientProxies(final int expectedSize) {
     final CacheServer cs = getCache().getCacheServers().iterator().next();
-    Awaitility.await().atMost(1, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> assertEquals(expectedSize, cs.getAllClientSessions().size()));
   }
 
   public void waitForHARegionSize(final int expectedSize) {
     final CacheServer cs = getCache().getCacheServers().iterator().next();
     final CacheClientProxy ccp = (CacheClientProxy) cs.getAllClientSessions().iterator().next();
-    Awaitility.await().atMost(1, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> assertEquals(expectedSize, getHAEventsCount(ccp)));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/locks/TXLockServiceDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/locks/TXLockServiceDUnitTest.java
index 57cd0ab..8df3041 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/locks/TXLockServiceDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/locks/TXLockServiceDUnitTest.java
@@ -15,7 +15,7 @@
 package org.apache.geode.internal.cache.locks;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -29,7 +29,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -162,14 +161,14 @@ public class TXLockServiceDUnitTest extends JUnit4DistributedTestCase {
     thread.setDaemon(true);
     thread.start();
 
-    await("waiting for recovery message to block").atMost(999, TimeUnit.MILLISECONDS).until(() -> {
+    await("waiting for recovery message to block").until(() -> {
       return ((TXLockServiceImpl) dtls).isRecovering();
     });
 
     dtls.release(txLockId);
 
     // check results to verify no locks were provided in the reply
-    await("waiting for thread to exit").atMost(30, TimeUnit.SECONDS).until(() -> {
+    await("waiting for thread to exit").until(() -> {
       return !thread.isAlive();
     });
 
@@ -231,7 +230,7 @@ public class TXLockServiceDUnitTest extends JUnit4DistributedTestCase {
       thread.setDaemon(true);
       thread.start();
 
-      await("waiting for recovery to begin").atMost(10, TimeUnit.SECONDS).until(() -> {
+      await("waiting for recovery to begin").until(() -> {
         return observer.isPreventingProcessing();
       });
 
@@ -258,7 +257,7 @@ public class TXLockServiceDUnitTest extends JUnit4DistributedTestCase {
       System.out.println("releasing transaction locks, which should block for a bit");
       dtls.release(txLockId);
 
-      await("waiting for recovery to finish").atMost(10, TimeUnit.SECONDS).until(() -> {
+      await("waiting for recovery to finish").until(() -> {
         return !((TXLockServiceImpl) dtls).isRecovering();
       });
     } finally {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
index 84483dd..e660983 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/BucketCreationCrashCompletesRegressionTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.internal.cache.partitioned;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_NETWORK_PARTITION_DETECTION;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.DistributedTestUtils.crashDistributedSystem;
 import static org.apache.geode.test.dunit.DistributedTestUtils.getAllDistributedSystemProperties;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.util.List;
@@ -169,7 +168,7 @@ public class BucketCreationCrashCompletesRegressionTest implements Serializable
         .getTotalNumBuckets(); i++) {
       int bucketId = i;
 
-      await().atMost(2, MINUTES).until(() -> hasBucketOwners(partitionedRegion, bucketId));
+      await().until(() -> hasBucketOwners(partitionedRegion, bucketId));
 
       List owners = partitionedRegion.getBucketOwnersForValidation(bucketId);
       assertThat(owners).isNotNull();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
index e2de1cd..315a727 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PRDiskConflictWithColocationDistributedTest.java
@@ -17,12 +17,12 @@ package org.apache.geode.internal.cache.partitioned;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
 import static org.apache.geode.distributed.internal.DistributionConfig.GEMFIRE_PREFIX;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.catchThrowable;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.util.concurrent.CountDownLatch;
@@ -116,7 +116,7 @@ public class PRDiskConflictWithColocationDistributedTest implements Serializable
     // Cache should have closed due to ConflictingPersistentDataException
     createColocatedPRWithObserver(1);
 
-    await().atMost(2, MINUTES).until(() -> basicGetCache().isClosed());
+    await().until(() -> basicGetCache().isClosed());
 
     Throwable throwable =
         catchThrowable(() -> basicGetCache().getCancelCriterion().checkCancelInProgress(null));
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
index 5922301..25b7566 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.internal.cache.partitioned;
 
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -350,7 +350,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
           // and the PR root config
           // will have an entry for the parent region.
           try {
-            await().pollDelay(50, TimeUnit.MILLISECONDS).atMost(100, TimeUnit.MILLISECONDS)
+            await()
                 .until(() -> {
                   return false;
                 });
@@ -395,7 +395,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             // Let this thread continue running long enough for the missing region to be logged a
             // couple times.
             // Child regions do not get created by this thread.
-            await().atMost(MAX_WAIT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(numExpectedLogMessages))
                   .append(loggingEventCaptor.capture());
             });
@@ -437,14 +437,14 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             createPR(getPartitionedRegionName(), true);
             // Delay creation of second (i.e child) region to see missing colocated region log
             // message (logInterval/2 < delay < logInterval)
-            await().atMost(MAX_WAIT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(1)).append(loggingEventCaptor.capture());
             });
             logEvents = loggingEventCaptor.getAllValues();
             createPR("region2", getPartitionedRegionName(), true);
             // Another delay before exiting the thread to make sure that missing region logging
             // doesn't continue after missing region is created (delay > logInterval)
-            await().atMost(logInterval * 2, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verifyNoMoreInteractions(mockAppender);
             });
             fail("Unexpected missing colocated region log message");
@@ -494,7 +494,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             // delay between starting generations of child regions until the expected missing
             // colocation messages are logged
             int n = (generation - 1) * generation / 2;
-            await().atMost(MAX_WAIT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(n)).append(loggingEventCaptor.capture());
             });
             // check for log messages
@@ -557,7 +557,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             // delay between starting generations of child regions until the expected missing
             // colocation messages are logged
             int n = regionNum - 1;
-            await().atMost(MAX_WAIT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(n)).append(loggingEventCaptor.capture());
             });
             // check for expected number of log messages
@@ -620,7 +620,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             // couple times.
             // Grandchild region does not get created by this thread. (1.5*logInterval < delay <
             // 2*logInterval)
-            await().atMost((int) (1.75 * logInterval), TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(numExpectedLogMessages))
                   .append(loggingEventCaptor.capture());
             });
@@ -1224,7 +1224,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest
             String colocatedWithRegionName = (String) regionInfo[1];
 
             // delay between starting generations of child regions and verify expected logging
-            await().atMost(MAX_WAIT, TimeUnit.MILLISECONDS).untilAsserted(() -> {
+            await().untilAsserted(() -> {
               verify(mockAppender, times(nExpectedLogs)).append(loggingEventCaptor.capture());
             });
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
index 0ee6b27..dd17615 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionDistributedTest.java
@@ -27,13 +27,13 @@ import static org.apache.geode.cache.RegionShortcut.PARTITION_PROXY;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
 import static org.apache.geode.distributed.ConfigurationProperties.SERIALIZABLE_OBJECT_FILTER;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.net.InetAddress;
@@ -235,7 +235,7 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
       try {
         adminDS.waitToBeConnected(MINUTES.toMillis(2));
 
-        await().atMost(2, MINUTES).until(() -> {
+        await().until(() -> {
           Set<PersistentID> missingIds = adminDS.getMissingPersistentMembers();
           if (missingIds.size() != 1) {
             return false;
@@ -655,7 +655,7 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
 
     // VM2 should pick up the slack
 
-    await().atMost(2, MINUTES).until(() -> {
+    await().until(() -> {
       Set<Integer> vm2Buckets = vm2.invoke(() -> getBucketList());
       return bucketsLost.equals(vm2Buckets);
     });
@@ -979,13 +979,13 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
     vm0.invoke(() -> {
       Region<Integer, Integer> region = getCache().getRegion(partitionedRegionName);
       // The value is initialized as a String so wait for it to be changed to an Integer.
-      await().atMost(2, MINUTES).until(() -> region.get(0) != null);
+      await().until(() -> region.get(0) != null);
       return region.get(0);
     });
     vm1.invoke(() -> {
       Region<Integer, Integer> region = getCache().getRegion(partitionedRegionName);
       // The value is initialized as a String so wait for it to be changed to an Integer.
-      await().atMost(2, MINUTES).until(() -> region.get(0) != null);
+      await().until(() -> region.get(0) != null);
       return region.get(0);
     });
 
@@ -1301,7 +1301,7 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
     PartitionedRegion region = (PartitionedRegion) getCache().getRegion(partitionedRegionName);
     PartitionedRegionDataStore dataStore = region.getDataStore();
 
-    await().atMost(2, MINUTES).until(() -> lostBuckets.equals(dataStore.getAllLocalBucketIds()));
+    await().until(() -> lostBuckets.equals(dataStore.getAllLocalBucketIds()));
   }
 
   private void createPartitionedRegionWithPersistence(final int redundancy) {
@@ -1543,7 +1543,7 @@ public class PersistentPartitionedRegionDistributedTest implements Serializable
     try {
       adminDS.waitToBeConnected(MINUTES.toMillis(2));
 
-      await().atMost(2, MINUTES).until(() -> {
+      await().until(() -> {
         Set<PersistentID> missingIds = adminDS.getMissingPersistentMembers();
         if (missingIds.size() != numExpectedMissing) {
           return false;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
index 06007ff..466f871 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/PersistentPartitionedRegionRegressionTest.java
@@ -17,13 +17,13 @@ package org.apache.geode.internal.cache.partitioned;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectFromDS;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 import java.util.Set;
@@ -285,7 +285,7 @@ public class PersistentPartitionedRegionRegressionTest implements Serializable {
           if (message instanceof ManageBucketMessage.ManageBucketReplyMessage) {
             Cache cache = getCache();
             disconnectFromDS();
-            await().atMost(2, MINUTES).until(() -> cache.isClosed());
+            await().until(() -> cache.isClosed());
             CRASHED.set(true);
           }
         }
@@ -304,7 +304,7 @@ public class PersistentPartitionedRegionRegressionTest implements Serializable {
 
     // wait till cache is completely shutdown before trying to create the region again. otherwise
     // deadlock situation might happen.
-    vm0.invoke(() -> await().atMost(2, MINUTES).until(() -> CRASHED.get()));
+    vm0.invoke(() -> await().until(() -> CRASHED.get()));
     vm0.invoke(() -> createPartitionedRegion(0, -1, 113, true));
     vm0.invoke(() -> checkData(0, 4, "a", partitionedRegionName));
 
@@ -498,7 +498,7 @@ public class PersistentPartitionedRegionRegressionTest implements Serializable {
     assertThat(vm0.invoke(() -> getBucketList(partitionedRegionName))).containsOnly(0);
 
     // vm1 should satisfy redundancy for the bucket as well
-    await().atMost(2, MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThat(vm1.invoke(() -> getBucketList(partitionedRegionName))).containsOnly(0);
     });
   }
@@ -523,7 +523,7 @@ public class PersistentPartitionedRegionRegressionTest implements Serializable {
     PartitionedRegion region = (PartitionedRegion) getCache().getRegion(partitionedRegionName);
     PartitionedRegionDataStore dataStore = region.getDataStore();
 
-    await().atMost(2, MINUTES).until(() -> bucketsLost.equals(dataStore.getAllLocalBucketIds()));
+    await().until(() -> bucketsLost.equals(dataStore.getAllLocalBucketIds()));
   }
 
   private void createPartitionedRegion(final int redundancy, final int recoveryDelay,
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
index 737c344..b213289 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/QueueRemovalMessageProcessingDistributedTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.internal.cache.partitioned;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_ID;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_TIMEOUT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -126,7 +125,7 @@ public class QueueRemovalMessageProcessingDistributedTest implements Serializabl
 
     identifyPrimaryServer();
 
-    client1.invoke(() -> await().atMost(1, MINUTES).until(() -> DESTROYED_COUNT.get() == 10));
+    client1.invoke(() -> await().until(() -> DESTROYED_COUNT.get() == 10));
 
     // totalEvents = putCount * 2 [eviction-destroys] + 1 [marker message]
     int totalEvents = putCount * 2 + 1;
@@ -214,7 +213,7 @@ public class QueueRemovalMessageProcessingDistributedTest implements Serializabl
   }
 
   private void verifyClientSubscriptionStatsOnPrimary(final int eventsCount) {
-    await().atMost(1, MINUTES).until(() -> allEventsHaveBeenDispatched(eventsCount));
+    await().until(() -> allEventsHaveBeenDispatched(eventsCount));
   }
 
   private boolean allEventsHaveBeenDispatched(final int eventsCount) {
@@ -224,7 +223,7 @@ public class QueueRemovalMessageProcessingDistributedTest implements Serializabl
   }
 
   private void verifyClientSubscriptionStatsOnSecondary(final int eventsCount) {
-    await().atMost(1, MINUTES).until(() -> {
+    await().until(() -> {
       HARegionQueueStats stats = getCacheClientProxy().getHARegionQueue().getStatistics();
 
       int numOfEvents = eventsCount - 1; // No marker
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
index 1c5c977..1ee896c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/ShutdownAllDUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache.partitioned;
 
 import static org.apache.geode.internal.lang.ThrowableUtils.getRootCause;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -28,7 +29,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -214,7 +214,7 @@ public class ShutdownAllDUnitTest extends JUnit4CacheTestCase {
         @Override
         public void cacheCreated(InternalCache cache) {
           calledCreateCache.set(true);
-          Awaitility.await().atMost(90, TimeUnit.SECONDS).until(() -> cache.isCacheAtShutdownAll());
+          await().until(() -> cache.isCacheAtShutdownAll());
         }
 
         @Override
@@ -227,14 +227,14 @@ public class ShutdownAllDUnitTest extends JUnit4CacheTestCase {
     });
     try {
       boolean vm0CalledCreateCache = vm0.invoke(() -> {
-        Awaitility.await().atMost(90, TimeUnit.SECONDS).until(() -> calledCreateCache.get());
+        await().until(() -> calledCreateCache.get());
         return calledCreateCache.get();
       });
       assertTrue(vm0CalledCreateCache);
       shutDownAllMembers(vm2, 1);
       asyncCreate.get(60, TimeUnit.SECONDS);
       boolean vm0CalledCloseCache = vm0.invoke(() -> {
-        Awaitility.await().atMost(90, TimeUnit.SECONDS).until(() -> calledCloseCache.get());
+        await().until(() -> calledCloseCache.get());
         return calledCloseCache.get();
       });
       assertTrue(vm0CalledCloseCache);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
index eb45c7a..0f1fa32 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplClientQueueDistributedTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getAllVMs;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
@@ -22,10 +23,8 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -192,7 +191,7 @@ public class AcceptorImplClientQueueDistributedTest implements Serializable {
 
           region.registerInterestRegex(".*", InterestResultPolicy.NONE, true);
           cache.readyForEvents();
-          Awaitility.await().atMost(200, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          await()
               .until(() -> eventCount.get() == NUMBER_OF_ENTRIES);
           cache.close();
           return eventCount.get() == NUMBER_OF_ENTRIES;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplDUnitTest.java
index 3af18bf..b2c22a1 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/AcceptorImplDUnitTest.java
@@ -15,15 +15,14 @@
 
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 import java.util.Properties;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -160,7 +159,7 @@ public class AcceptorImplDUnitTest extends JUnit4DistributedTestCase {
       assertTrue(cache.isServer());
       assertFalse(cache.isClosed());
 
-      Awaitility.await("Acceptor is up and running").atMost(10, SECONDS)
+      await("Acceptor is up and running")
           .until(() -> getAcceptorImplFromCache(cache) != null);
       AcceptorImpl acceptorImpl = getAcceptorImplFromCache(cache);
 
@@ -179,17 +178,17 @@ public class AcceptorImplDUnitTest extends JUnit4DistributedTestCase {
         clientRegion1.put("foo", "bar");
       });
 
-      Awaitility.await("Cache writer starts").atMost(10, SECONDS)
+      await("Cache writer starts")
           .until(sleepyCacheWriter::isStarted);
 
       cache.close();
 
-      Awaitility.await("Cache writer interrupted").atMost(10, SECONDS)
+      await("Cache writer interrupted")
           .until(sleepyCacheWriter::isInterrupted);
 
       sleepyCacheWriter.stopWaiting();
 
-      Awaitility.await("Acceptor shuts down properly").atMost(10, SECONDS)
+      await("Acceptor shuts down properly")
           .until(() -> acceptorImpl.isShutdownProperly());
 
       ThreadUtils.dumpMyThreads(); // for debugging.
@@ -217,13 +216,13 @@ public class AcceptorImplDUnitTest extends JUnit4DistributedTestCase {
 
       assertTrue(cache.isServer());
       assertFalse(cache.isClosed());
-      Awaitility.await("Acceptor is up and running").atMost(10, SECONDS)
+      await("Acceptor is up and running")
           .until(() -> getAcceptorImplFromCache(cache) != null);
 
       AcceptorImpl acceptorImpl = getAcceptorImplFromCache(cache);
 
       cache.close();
-      Awaitility.await("Acceptor shuts down properly").atMost(10, SECONDS)
+      await("Acceptor shuts down properly")
           .until(acceptorImpl::isShutdownProperly);
 
       assertTrue(cache.isClosed());
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
index 6066626..6796ae9 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientDestroyRegionNotificationRegressionTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.client.ClientRegionShortcut.LOCAL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -100,10 +99,10 @@ public class ClientDestroyRegionNotificationRegressionTest implements Serializab
   @Test
   public void senderDoesNotReceiveRegionDestroy() throws Exception {
     server1.invoke(() -> {
-      await().atMost(1, MINUTES).until(() -> cacheRule.getCache().getRegion(regionName) == null);
+      await().until(() -> cacheRule.getCache().getRegion(regionName) == null);
     });
     server2.invoke(() -> {
-      await().atMost(1, MINUTES).until(() -> cacheRule.getCache().getRegion(regionName) == null);
+      await().until(() -> cacheRule.getCache().getRegion(regionName) == null);
     });
 
     Thread.sleep(5 * 1000);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestNotifyDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestNotifyDUnitTest.java
index d2f146e..ba619e6 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestNotifyDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientInterestNotifyDUnitTest.java
@@ -17,15 +17,14 @@ package org.apache.geode.internal.cache.tier.sockets;
 import static org.apache.geode.distributed.ConfigurationProperties.DELTA_PROPAGATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.Iterator;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -106,7 +105,7 @@ public class ClientInterestNotifyDUnitTest extends JUnit4DistributedTestCase {
     public void validate(int creates, int updates, int invalidates, int destroys) {
       // Wait for the last destroy event to arrive.
       try {
-        Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+        await().until(() -> {
           return (destroys == m_destroys);
         });
       } catch (Exception ex) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
index 91b75a3..23c65b5 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientProxyWithDeltaDistributedTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -138,7 +137,7 @@ public class ClientProxyWithDeltaDistributedTest implements Serializable {
     });
 
     client2.invoke(() -> {
-      await().atMost(30, SECONDS)
+      await()
           .until(() -> clientCache.getRegion(CACHING_PROXY_NAME).containsKey(0));
       assertThat(CacheClientUpdater.fullValueRequested).isFalse();
       assertThat(DeltaEnabledObject.fromDeltaInvoked()).isTrue();
@@ -167,7 +166,7 @@ public class ClientProxyWithDeltaDistributedTest implements Serializable {
     });
 
     client2.invoke(() -> {
-      await().atMost(30, SECONDS).until(() -> ClientListener.KEY_ZERO_CREATED.get());
+      await().until(() -> ClientListener.KEY_ZERO_CREATED.get());
       assertThat(CacheClientUpdater.fullValueRequested).isFalse();
       assertThat(DeltaEnabledObject.fromDeltaInvoked()).isFalse();
     });
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerForceInvalidateDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerForceInvalidateDUnitTest.java
index 664a7f4..acc21a4 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerForceInvalidateDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerForceInvalidateDUnitTest.java
@@ -16,13 +16,12 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.awaitility.Awaitility.with;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Properties;
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
 import org.junit.Test;
@@ -193,7 +192,7 @@ public class ClientServerForceInvalidateDUnitTest extends JUnit4CacheTestCase {
   }
 
   private void waitForClientInvalidate() {
-    with().pollInterval(10, TimeUnit.MILLISECONDS).await().atMost(20, TimeUnit.SECONDS)
+    await()
         .until(() -> hasClientListenerAfterInvalidateBeenInvoked());
   }
 
@@ -328,8 +327,7 @@ public class ClientServerForceInvalidateDUnitTest extends JUnit4CacheTestCase {
     region1.registerInterest("ALL_KEYS", InterestResultPolicy.NONE, false, false);
     region1.getAttributesMutator().addCacheListener(new ClientListener());
     assertNotNull(region1);
-    with().pollDelay(1, TimeUnit.MILLISECONDS).pollInterval(1, TimeUnit.SECONDS).await()
-        .atMost(60, TimeUnit.SECONDS).until(() -> poolReady(p));
+    await().until(() -> poolReady(p));
   }
 
   private static boolean poolReady(final PoolImpl pool) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
index f2fe2a5..f532019 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTest.java
@@ -15,11 +15,9 @@
 
 package org.apache.geode.internal.cache.tier.sockets;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.Operation;
@@ -77,7 +75,7 @@ public class ClientServerMiscDUnitTest extends ClientServerMiscDUnitTestBase {
       event.setEventId(eventID);
       localRegion.getRegionMap().invalidate(event, false, false, false);
     });
-    Awaitility.await().atMost(5, TimeUnit.MINUTES)
+    await()
         .until(() -> entry.getVersionStamp().getEntryVersion() > entryVersion);
 
     System.out.println("do it again with a forceEntry==true code path");
@@ -100,7 +98,7 @@ public class ClientServerMiscDUnitTest extends ClientServerMiscDUnitTestBase {
       event.setEventId(eventID);
       localRegion.getRegionMap().invalidate(event, false, true, false);
     });
-    Awaitility.await().atMost(5, TimeUnit.MINUTES)
+    await()
         .until(() -> entry2.getVersionStamp().getEntryVersion() > entryVersion2);
   }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
index 0e15515..5ca948c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/ClientWithInterestFailoverDistributedTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -240,7 +239,7 @@ public class ClientWithInterestFailoverDistributedTest implements Serializable {
   }
 
   private void awaitServerMetaDataToContainClient() {
-    await().atMost(30, SECONDS)
+    await()
         .untilAsserted(() -> assertThat(
             getCacheServer().getAcceptor().getCacheClientNotifier().getClientProxies().size())
                 .isEqualTo(1));
@@ -248,7 +247,7 @@ public class ClientWithInterestFailoverDistributedTest implements Serializable {
     CacheClientProxy proxy = getClientProxy();
     assertThat(proxy).isNotNull();
 
-    await().atMost(30, SECONDS).until(() -> getClientProxy().isAlive() && getClientProxy()
+    await().until(() -> getClientProxy().isAlive() && getClientProxy()
         .getRegionsWithEmptyDataPolicy().containsKey(Region.SEPARATOR + PROXY_REGION_NAME));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
index f038f8d..887f524 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DataSerializerPropagationDUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -26,9 +27,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -162,7 +161,7 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
   }
 
   private static void verifyDataSerializers(final int numOfDataSerializers) {
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(
             "serializers: " + Arrays.toString(InternalDataSerializer.getSerializers()),
             InternalDataSerializer.getSerializers().length, numOfDataSerializers));
@@ -412,7 +411,7 @@ public final class DataSerializerPropagationDUnitTest extends JUnit4DistributedT
     registerDataSerializer(DSObject1.class);
 
     assertNotNull(eventId);
-    Awaitility.await("event propagates to client 2").untilAsserted(() -> assertEquals(eventId,
+    await("event propagates to client 2").untilAsserted(() -> assertEquals(eventId,
         client2.invoke(DataSerializerPropagationDUnitTest::getObservedEventID)));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientQueueSizeDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientQueueSizeDUnitTest.java
index 5203ff7..223a161 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientQueueSizeDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientQueueSizeDUnitTest.java
@@ -17,14 +17,13 @@ package org.apache.geode.internal.cache.tier.sockets;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_ID;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_TIMEOUT;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.Serializable;
 import java.util.Iterator;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -161,7 +160,7 @@ public class DurableClientQueueSizeDUnitTest extends JUnit4DistributedTestCase {
 
     vm0.invoke(() -> DurableClientQueueSizeDUnitTest.doPutsIntoRegion(REGION_NAME, num));
 
-    vm0.invoke(() -> Awaitility.waitAtMost(45, TimeUnit.SECONDS).untilAsserted(() -> {
+    vm0.invoke(() -> await().untilAsserted(() -> {
       CacheClientProxy ccp = DurableClientQueueSizeDUnitTest.getCacheClientProxy(MY_DURABLE_CLIENT);
       assertEquals(0, ccp.getQueueSize());
       assertEquals(0, ccp.getQueueSizeStat());
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
index 1442d33..05ba391 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/GetConnectedServerCountRegressionTest.java
@@ -14,10 +14,9 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
-import static org.awaitility.Awaitility.await;
 
 import java.io.Serializable;
 
@@ -119,7 +118,7 @@ public class GetConnectedServerCountRegressionTest implements Serializable {
   }
 
   private void awaitConnectedServerCount(final int expectedServerCount) {
-    await().atMost(3, MINUTES)
+    await()
         .until(() -> findPool(uniqueName).getConnectedServerCount() == expectedServerCount);
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HABug36738DUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HABug36738DUnitTest.java
index 60764a7..12cb5e9 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HABug36738DUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HABug36738DUnitTest.java
@@ -14,9 +14,8 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TEN_SECONDS;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
@@ -80,7 +79,7 @@ public class HABug36738DUnitTest extends JUnit4DistributedTestCase {
     final VM server2 = Host.getHost(0).getVM(1);
 
     server1.invoke(() -> createServerCacheWithHAAndRegion());
-    await().atMost(TEN_SECONDS).until(() -> regionExists(server1, HAREGION_NAME));
+    await().until(() -> regionExists(server1, HAREGION_NAME));
     server1.invoke(() -> checkRegionQueueSize());
 
     server2.invoke(() -> createServerCacheWithHA());
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
index b63c7f6..ae3ae23 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HARegionQueueStatsCloseRegressionTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.client.ClientRegionShortcut.LOCAL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -177,7 +176,7 @@ public class HARegionQueueStatsCloseRegressionTest implements Serializable {
   }
 
   private void verifyDispatchedMessagesMapIsEmpty() {
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(
             () -> assertThat(HARegionQueue.getDispatchedMessagesMapForTesting()).isEmpty());
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
index b684749..624d007 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -26,9 +27,7 @@ import static org.junit.Assert.fail;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -327,7 +326,7 @@ public class HAStartupAndFailoverDUnitTest extends JUnit4DistributedTestCase {
 
   public static void verifyDeadAndLiveServers(final int expectedDeadServers,
       final int expectedLiveServers) {
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(expectedLiveServers, pool.getConnectedServerCount()));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart1DUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart1DUnitTest.java
index a34594f..4ca1f4e 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart1DUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart1DUnitTest.java
@@ -14,9 +14,8 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.hamcrest.Matchers.equalTo;
 
 import org.junit.BeforeClass;
@@ -40,7 +39,7 @@ public class RedundancyLevelPart1DUnitTest extends RedundancyLevelTestBase {
 
   private void waitConnectedServers(final int expected) {
     await("Connected server count (" + pool.getConnectedServerCount() + ") never became "
-        + expected).atMost(60, SECONDS).pollInterval(1, SECONDS)
+        + expected)
             .until(() -> pool.getConnectedServerCount(), equalTo(expected));
   }
 
@@ -58,7 +57,7 @@ public class RedundancyLevelPart1DUnitTest extends RedundancyLevelTestBase {
     verifyConnectedAndRedundantServers(3, 0);
     verifyOrderOfEndpoints();
 
-    await("pool still contains " + SERVER3).atMost(30, SECONDS).pollInterval(1, SECONDS)
+    await("pool still contains " + SERVER3)
         .until(() -> !pool.getCurrentServerNames().contains(SERVER3));
 
   }
@@ -81,7 +80,7 @@ public class RedundancyLevelPart1DUnitTest extends RedundancyLevelTestBase {
     verifyConnectedAndRedundantServers(3, 0);
     verifyOrderOfEndpoints();
 
-    await("pool still contains " + SERVER1).atMost(30, SECONDS).pollInterval(1, SECONDS)
+    await("pool still contains " + SERVER1)
         .until(() -> !pool.getCurrentServerNames().contains(SERVER1));
 
     assertThat(pool.getPrimaryName()).isNotEqualTo(SERVER1);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart2DUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart2DUnitTest.java
index b4ac1a6..aa02c7c 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart2DUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelPart2DUnitTest.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 
-import org.awaitility.Awaitility;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -36,9 +35,9 @@ public class RedundancyLevelPart2DUnitTest extends RedundancyLevelTestBase {
   }
 
   private void waitConnectedServers(final int expected) {
-    Awaitility.await("Connected server count (" + pool.getConnectedServerCount() + ") never became "
-        + expected).atMost(120, SECONDS).pollInterval(1, SECONDS)
-        .until(() -> pool.getConnectedServerCount(), equalTo(expected));
+    await("Connected server count (" + pool.getConnectedServerCount() + ") never became "
+        + expected)
+            .until(() -> pool.getConnectedServerCount(), equalTo(expected));
   }
 
   /**
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
index 6555fe3..13d884c 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RedundancyLevelTestBase.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
 
@@ -142,7 +141,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
 
   static void verifyDispatcherIsAlive() {
 
-    await().atMost(180, SECONDS).pollInterval(1, SECONDS)
+    await()
         .until(() -> cache.getCacheServers().size(), equalTo(1));
 
     CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
@@ -152,7 +151,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
 
     final CacheClientNotifier ccn = bs.getAcceptor().getCacheClientNotifier();
 
-    await().atMost(180, SECONDS).pollInterval(1, SECONDS).until(() -> ccn.getClientProxies().size(),
+    await().until(() -> ccn.getClientProxies().size(),
         greaterThan(0));
 
     Iterator<CacheClientProxy> cacheClientProxyIterator = ccn.getClientProxies().iterator();
@@ -160,14 +159,14 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
     if (ccn.getClientProxies().iterator().hasNext()) {
 
       final CacheClientProxy proxy = cacheClientProxyIterator.next();
-      await().atMost(180, SECONDS).pollInterval(1, SECONDS)
+      await()
           .until(() -> proxy._messageDispatcher != null && proxy._messageDispatcher.isAlive());
     }
   }
 
   static void verifyDispatcherIsNotAlive() {
 
-    await().atMost(180, SECONDS).pollInterval(1, SECONDS)
+    await()
         .until(() -> cache.getCacheServers().size(), equalTo(1));
 
     CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
@@ -177,7 +176,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
 
     final CacheClientNotifier ccn = bs.getAcceptor().getCacheClientNotifier();
 
-    await().atMost(180, SECONDS).pollInterval(1, SECONDS).until(() -> ccn.getClientProxies().size(),
+    await().until(() -> ccn.getClientProxies().size(),
         greaterThan(0));
 
     Iterator<CacheClientProxy> cacheClientProxyIterator = ccn.getClientProxies().iterator();
@@ -191,7 +190,6 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
   static void verifyRedundantServersContain(final String server) {
 
     await()
-        .atMost(180, SECONDS).pollInterval(2, SECONDS)
         .until(() -> pool.getRedundantNames().contains(server));
   }
 
@@ -209,7 +207,6 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
     }
     await(
         "Live server count didn't match expected and/or redundant server count didn't match expected in time")
-            .atMost(180, SECONDS).pollInterval(2, SECONDS)
             .until(() -> {
               try {
                 return pool.getConnectedServerCount() == connectedServers
@@ -262,7 +259,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
   }
 
   static void verifyCCP() {
-    await().atMost(180, SECONDS).pollInterval(2, SECONDS)
+    await()
         .until(() -> cache.getCacheServers().size(), equalTo(1));
     CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
 
@@ -272,13 +269,12 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
 
     // one client is connected to this server
     final CacheClientNotifier ccn = bs.getAcceptor().getCacheClientNotifier();
-    await().atMost(180, SECONDS).pollInterval(1, SECONDS).until(() -> ccn.getClientProxies().size(),
+    await().until(() -> ccn.getClientProxies().size(),
         equalTo(1));
   }
 
   static void verifyInterestRegistration() {
     await("Number of bridge servers (" + cache.getCacheServers().size() + ") never became 1")
-        .atMost(180, SECONDS).pollInterval(2, SECONDS)
         .until(() -> cache.getCacheServers().size(), equalTo(1));
 
     CacheServerImpl bs = (CacheServerImpl) cache.getCacheServers().iterator().next();
@@ -287,7 +283,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
     assertThat(bs.getAcceptor().getCacheClientNotifier()).isNotNull();
 
     final CacheClientNotifier ccn = bs.getAcceptor().getCacheClientNotifier();
-    await("Notifier's proxies is empty").atMost(180, SECONDS).pollInterval(2, SECONDS)
+    await("Notifier's proxies is empty")
         .until(() -> ccn.getClientProxies().size(), greaterThan(0));
 
     Iterator<CacheClientProxy> cacheClientProxyIterator = ccn.getClientProxies().iterator();
@@ -296,7 +292,7 @@ public class RedundancyLevelTestBase extends JUnit4DistributedTestCase {
         .isTrue();
     final CacheClientProxy ccp = cacheClientProxyIterator.next();
 
-    await().atMost(180, SECONDS).pollInterval(2, SECONDS).until(() -> {
+    await().until(() -> {
       Set keysMap = ccp.cils[RegisterInterestTracker.interestListIndex]
           .getProfile(Region.SEPARATOR + REGION_NAME).getKeysOfInterestFor(ccp.getProxyID());
       if (keysMap == null) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestDistributedTest.java
index 3759bfa..4896650 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestDistributedTest.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -73,7 +72,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put(1, 2);
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
   }
 
   @Test
@@ -91,7 +90,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put(1, 2);
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
   }
 
   @Test
@@ -124,7 +123,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put(1, 2);
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
   }
 
   @Test
@@ -144,7 +143,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put(1, 2);
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(3));
   }
 
   @Test
@@ -167,7 +166,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put("should not be interested", "in this key/value");
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
   }
 
   @Test
@@ -190,7 +189,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put("should not be interested", "in this key/value");
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
   }
 
   @Test
@@ -214,7 +213,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put("should not be interested", "in this key/value");
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
   }
 
   @Test
@@ -255,7 +254,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put("should not be interested", "in this key/value");
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
   }
 
   @Test
@@ -279,7 +278,7 @@ public class RegisterInterestDistributedTest {
       regionOnServer.put("should not be interested", "in this key/value");
     });
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
+    await().untilAsserted(() -> assertThat(region.size()).isEqualTo(2));
   }
 
   @Test
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
index 262149e..1118eb8 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestOnServerWithoutRegionRegressionTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.client.ClientRegionShortcut.LOCAL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.Serializable;
@@ -151,6 +150,6 @@ public class RegisterInterestOnServerWithoutRegionRegressionTest implements Seri
     PoolImpl pool = (PoolImpl) PoolManager.getAll().get(uniqueName);
     assertThat(pool).isNotNull();
 
-    await().atMost(2, MINUTES).until(() -> pool.getConnectedServerCount() == expectedServerCount);
+    await().until(() -> pool.getConnectedServerCount() == expectedServerCount);
   }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
index 31e3a11..f062cbf 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/RegisterInterestServerMetaDataDistributedTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.Region.SEPARATOR;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -241,7 +240,7 @@ public class RegisterInterestServerMetaDataDistributedTest implements Serializab
   }
 
   private void awaitServerMetaDataToContainClient() {
-    await().atMost(30, SECONDS)
+    await()
         .untilAsserted(() -> assertThat(
             getCacheServer().getAcceptor().getCacheClientNotifier().getClientProxies().size())
                 .isEqualTo(1));
@@ -249,7 +248,7 @@ public class RegisterInterestServerMetaDataDistributedTest implements Serializab
     CacheClientProxy proxy = getClientProxy();
     assertThat(proxy).isNotNull();
 
-    await().atMost(30, SECONDS).until(() -> getClientProxy().isAlive() && getClientProxy()
+    await().until(() -> getClientProxy().isAlive() && getClientProxy()
         .getRegionsWithEmptyDataPolicy().containsKey(SEPARATOR + PROXY_REGION_NAME));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
index b6ce280..4ff4308 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 import static junit.framework.TestCase.assertNotNull;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
@@ -25,9 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -131,7 +130,7 @@ public class UpdatePropagationDUnitTest extends JUnit4CacheTestCase {
 
             String poolName = r.getAttributes().getPoolName();
             final PoolImpl pool = (PoolImpl) PoolManager.find(poolName);
-            Awaitility.await().atMost(60, TimeUnit.SECONDS)
+            await()
                 .until(() -> !hasEndPointWithPort(pool, PORT1));
           }
         };
@@ -148,7 +147,7 @@ public class UpdatePropagationDUnitTest extends JUnit4CacheTestCase {
             Region r = getCache().getRegion(REGION_NAME);
             String poolName = r.getAttributes().getPoolName();
             final PoolImpl pool = (PoolImpl) PoolManager.find(poolName);
-            Awaitility.await().atMost(60, TimeUnit.SECONDS)
+            await()
                 .until(() -> hasEndPointWithPort(pool, PORT1));
           }
         };
@@ -289,7 +288,7 @@ public class UpdatePropagationDUnitTest extends JUnit4CacheTestCase {
   }
 
   private void verifyUpdates() {
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       Region r = getCache().getRegion(Region.SEPARATOR + REGION_NAME);
       // verify updates
       if (r.getAttributes().getPartitionAttributes() == null) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
index 3b608b0..5c8153c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
@@ -14,11 +14,9 @@
  */
 package org.apache.geode.internal.cache.versions;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.Region;
@@ -75,7 +73,7 @@ public class TombstoneDUnitTest extends JUnit4CacheTestCase {
 
   private void waitForTombstoneCount(int count) {
     try {
-      Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
+      await().until(() -> {
         return getGemfireCache().getCachePerfStats().getTombstoneCount() == count;
       });
     } catch (Exception e) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
index aae5c08..e335081 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerDistributedTest.java
@@ -16,11 +16,10 @@ package org.apache.geode.internal.cache.wan.asyncqueue;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getCurrentVMNum;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
@@ -678,12 +677,12 @@ public class AsyncEventListenerDistributedTest implements Serializable {
   }
 
   private void waitForAsyncEventListenerWithEventsMapSize(int expectedSize) {
-    await().atMost(TWO_MINUTES).untilAsserted(
+    await().untilAsserted(
         () -> assertThat(getSpyAsyncEventListener().getEventsMap()).hasSize(expectedSize));
   }
 
   private void waitForAsyncEventQueueSize(int expectedRegionQueueSize) {
-    await().atMost(TWO_MINUTES).untilAsserted(
+    await().untilAsserted(
         () -> assertThat(getTotalRegionQueueSize()).isEqualTo(expectedRegionQueueSize));
   }
 
@@ -692,13 +691,13 @@ public class AsyncEventListenerDistributedTest implements Serializable {
   }
 
   private void waitForRegionQueuesToEmpty() {
-    await().atMost(TWO_MINUTES)
+    await()
         .untilAsserted(() -> assertRegionQueuesAreEmpty(getInternalGatewaySender()));
   }
 
   private void waitForSenderToBecomePrimary() {
     InternalGatewaySender gatewaySender = getInternalGatewaySender();
-    await().atMost(TWO_MINUTES).untilAsserted(
+    await().untilAsserted(
         () -> assertThat(gatewaySender.isPrimary()).as("gatewaySender: " + gatewaySender).isTrue());
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
index 0747748..fe01e91 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithCacheLoaderDistributedTest.java
@@ -18,11 +18,10 @@ package org.apache.geode.internal.cache.wan.asyncqueue;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -267,7 +266,7 @@ public class AsyncEventListenerWithCacheLoaderDistributedTest implements Seriali
   private void validateAsyncEventForOperationDetail(int expectedSize, OperationType operationType) {
     Map<?, AsyncEvent> eventsMap = (Map<?, AsyncEvent>) getSpyAsyncEventListener().getEventsMap();
 
-    await().atMost(TWO_MINUTES)
+    await()
         .untilAsserted(() -> assertThat(eventsMap.size()).isEqualTo(expectedSize));
 
     for (AsyncEvent<?, ?> asyncEvent : eventsMap.values()) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
index 5b9fe12..3896fdc 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventListenerWithFilterDistributedTest.java
@@ -17,12 +17,11 @@
 package org.apache.geode.internal.cache.wan.asyncqueue;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getCurrentVMNum;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -366,7 +365,7 @@ public class AsyncEventListenerWithFilterDistributedTest implements Serializable
 
   private void waitForAsyncQueueToEmpty() {
     InternalGatewaySender gatewaySender = getInternalGatewaySender();
-    await().atMost(TWO_MINUTES).untilAsserted(() -> assertRegionQueuesAreEmpty(gatewaySender));
+    await().untilAsserted(() -> assertRegionQueuesAreEmpty(gatewaySender));
   }
 
   private StringGatewayEventSubstitutionFilter getMyGatewayEventSubstitutionFilter() {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
index 55d2905..704951c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ConcurrentAsyncEventListenerDistributedTest.java
@@ -18,10 +18,9 @@ package org.apache.geode.internal.cache.wan.asyncqueue;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -254,9 +253,9 @@ public class ConcurrentAsyncEventListenerDistributedTest implements Serializable
 
     vm0.invoke(() -> doPuts(partitionedRegionName, 1000));
 
-    vm0.invoke(() -> await().atMost(TWO_MINUTES)
+    vm0.invoke(() -> await()
         .untilAsserted(() -> assertThat(getAsyncEventQueue().size()).isEqualTo(1000)));
-    vm1.invoke(() -> await().atMost(TWO_MINUTES)
+    vm1.invoke(() -> await()
         .untilAsserted(() -> assertThat(getAsyncEventQueue().size()).isEqualTo(1000)));
   }
 
@@ -338,7 +337,7 @@ public class ConcurrentAsyncEventListenerDistributedTest implements Serializable
 
   private void validateAsyncEventListener(int expectedSize) {
     Map<?, ?> eventsMap = getSpyAsyncEventListener().getEventsMap();
-    await().atMost(TWO_MINUTES).until(() -> eventsMap.size() == expectedSize);
+    await().until(() -> eventsMap.size() == expectedSize);
   }
 
   private void waitForDispatcherToPause() {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
index 4d36b91..a06560a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/ParallelAsyncEventListenerDistributedTest.java
@@ -21,12 +21,11 @@ import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.FixedPartitionAttributes.createFixedPartition;
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getCurrentVMNum;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 
 import java.io.File;
 import java.io.IOException;
@@ -778,7 +777,7 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
 
     assertThat(vm0.invoke(() -> getBucketMovingAsyncEventListener().isMoved())).isTrue();
 
-    vm1.invoke(() -> await().atMost(TWO_MINUTES)
+    vm1.invoke(() -> await()
         .untilAsserted(() -> assertThat(getBucketMovingAsyncEventListener().isMoved()).isTrue()));
   }
 
@@ -1149,12 +1148,12 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
     AsyncEventQueueStats asyncEventQueueStats = asyncEventQueue.getStatistics();
     assertThat(asyncEventQueueStats).isNotNull();
 
-    await().atMost(TWO_MINUTES)
+    await()
         .untilAsserted(
             () -> assertThat(asyncEventQueueStats.getEventQueueSize()).isEqualTo(queueSize));
 
     if (asyncEventQueue.isParallel()) {
-      await().atMost(TWO_MINUTES)
+      await()
           .untilAsserted(() -> assertThat(asyncEventQueueStats.getSecondaryEventQueueSize())
               .isEqualTo(secondaryQueueSize));
 
@@ -1210,12 +1209,12 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
 
   private void validateSpyAsyncEventListenerEventsMap(int expectedSize) {
     Map eventsMap = (Map<?, ?>) getSpyAsyncEventListener().getEventsMap();
-    await().atMost(TWO_MINUTES).untilAsserted(() -> assertThat(eventsMap).hasSize(expectedSize));
+    await().untilAsserted(() -> assertThat(eventsMap).hasSize(expectedSize));
   }
 
   private void waitForAsyncQueueToEmpty() {
     InternalGatewaySender gatewaySender = getInternalGatewaySender();
-    await().atMost(TWO_MINUTES).until(() -> areRegionQueuesEmpty(gatewaySender));
+    await().until(() -> areRegionQueuesEmpty(gatewaySender));
   }
 
   private void waitForDispatcherToPause() {
@@ -1225,7 +1224,7 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
   private void waitForParallelAsyncEventQueueSize(int expectedRegionQueueSize) {
     InternalGatewaySender gatewaySender = getInternalGatewaySender();
 
-    await().atMost(TWO_MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       Set<RegionQueue> regionQueues = gatewaySender.getQueues();
       assertThat(regionQueues).isNotEmpty().hasSize(1);
 
@@ -1235,7 +1234,7 @@ public class ParallelAsyncEventListenerDistributedTest implements Serializable {
   }
 
   private void waitForPrimaryToMove() {
-    await().atMost(TWO_MINUTES).until(() -> getPrimaryMovingAsyncEventListener().isMoved());
+    await().until(() -> getPrimaryMovingAsyncEventListener().isMoved());
   }
 
   private InternalGatewaySender getInternalGatewaySender() {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
index 54166b4..99d1577 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/wan/asyncqueue/SerialEventListenerDistributedTest.java
@@ -18,11 +18,10 @@ package org.apache.geode.internal.cache.wan.asyncqueue;
 
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.asyncqueue.internal.AsyncEventQueueFactoryImpl.DEFAULT_BATCH_TIME_INTERVAL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getCurrentVMNum;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
-import static org.awaitility.Duration.TWO_MINUTES;
 
 import java.io.File;
 import java.io.IOException;
@@ -298,7 +297,7 @@ public class SerialEventListenerDistributedTest implements Serializable {
   private void validateThrowingAsyncEventListenerEventsMap(int expectedSize) {
     Map<?, AsyncEvent<?, ?>> eventsMap = getThrowingAsyncEventListener().getEventsMap();
 
-    await().atMost(TWO_MINUTES).untilAsserted(() -> assertThat(eventsMap).hasSize(expectedSize));
+    await().untilAsserted(() -> assertThat(eventsMap).hasSize(expectedSize));
 
     for (AsyncEvent<?, ?> event : eventsMap.values()) {
       assertThat(event.getPossibleDuplicate()).isTrue();
@@ -306,7 +305,7 @@ public class SerialEventListenerDistributedTest implements Serializable {
   }
 
   private void validateThrowingAsyncEventListenerExceptionThrown() {
-    await().atMost(TWO_MINUTES)
+    await()
         .untilAsserted(() -> assertThat(isThrowingAsyncEventListenerExceptionThrown()).isTrue());
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTADUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTADUnitTest.java
index fd17df2..4bf5e45 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTADUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTADUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.jta;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -35,7 +36,6 @@ import javax.transaction.SystemException;
 import javax.transaction.TransactionManager;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Rule;
 import org.junit.Test;
@@ -123,8 +123,8 @@ public class ClientServerJTADUnitTest extends JUnit4CacheTestCase {
     // GEODE commit apply the tx change to cache before releasing the locks held, so
     // the region could have the new value but still hold the locks.
     // Add the wait to check new JTA tx can be committed.
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(30, TimeUnit.SECONDS).until(() -> ableToCommitNewTx(REGION_NAME, mgr));
+    await()
+        .until(() -> ableToCommitNewTx(REGION_NAME, mgr));
   }
 
   private boolean expectionLogged = false;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
index 5d60b6b..3f12381 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/jta/ClientServerJTAFailoverDistributedTest.java
@@ -17,16 +17,15 @@ package org.apache.geode.internal.jta;
 
 import static org.apache.geode.cache.RegionShortcut.PARTITION;
 import static org.apache.geode.cache.client.ClientRegionShortcut.LOCAL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getHostName;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.junit.Assert.assertEquals;
 
 import java.io.Serializable;
-import java.util.concurrent.TimeUnit;
 
 import javax.transaction.Status;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -283,7 +282,7 @@ public class ClientServerJTAFailoverDistributedTest implements Serializable {
       region = cache.getRegion(regionName);
       txManager = (TXManagerImpl) cache.getCacheTransactionManager();
 
-      Awaitility.await().atMost(30, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+      await()
           .until(() -> txManager.isHostedTXStatesEmpty());
     }
     txManager.begin();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/offheap/OutOfOffHeapMemoryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/offheap/OutOfOffHeapMemoryDUnitTest.java
index 66c97c8..85fe4eb 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/offheap/OutOfOffHeapMemoryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/offheap/OutOfOffHeapMemoryDUnitTest.java
@@ -17,7 +17,7 @@ package org.apache.geode.internal.offheap;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.OFF_HEAP_MEMORY_SIZE;
 import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAMPLING_ENABLED;
-import static org.awaitility.Awaitility.with;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -27,7 +27,6 @@ import static org.junit.Assert.fail;
 
 import java.util.Properties;
 import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -146,11 +145,11 @@ public class OutOfOffHeapMemoryDUnitTest extends JUnit4CacheTestCase {
     }
     assertNotNull(ooohme);
 
-    with().pollInterval(100, TimeUnit.MILLISECONDS).await().atMost(10, TimeUnit.SECONDS)
+    await()
         .until(() -> cache.isClosed() && !system.isConnected() && dm.isClosed());
 
     // wait for cache instance to be nulled out
-    with().pollInterval(100, TimeUnit.MILLISECONDS).await().atMost(10, TimeUnit.SECONDS)
+    await()
         .until(() -> cache.isClosed() && !system.isConnected());
 
     // verify system was closed out due to OutOfOffHeapMemoryException
@@ -293,9 +292,9 @@ public class OutOfOffHeapMemoryDUnitTest extends JUnit4CacheTestCase {
                                                                // member
           final int countOtherMembers = vmCount - 1 - 1; // -1 for self, -1 for OOOHME member
 
-          with().pollInterval(10, TimeUnit.MILLISECONDS).await().atMost(30, TimeUnit.SECONDS)
+          await()
               .until(numDistributionManagers(), equalTo(countMembersPlusLocator));
-          with().pollInterval(10, TimeUnit.MILLISECONDS).await().atMost(30, TimeUnit.SECONDS)
+          await()
               .until(numProfiles(), equalTo(countOtherMembers));
 
         }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
index 8d08ade..ee6a368 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/statistics/StatisticsDistributedTest.java
@@ -14,10 +14,10 @@
  */
 package org.apache.geode.internal.statistics;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_ARCHIVE_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAMPLE_RATE;
 import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAMPLING_ENABLED;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertFalse;
 import static org.apache.geode.test.dunit.Assert.assertNotNull;
@@ -25,7 +25,6 @@ import static org.apache.geode.test.dunit.Assert.assertTrue;
 import static org.apache.geode.test.dunit.Assert.fail;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.io.FileFilter;
@@ -158,7 +157,7 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
         assertTrue(sampler.isAlive());
         assertEquals(new File(pubArchives[pubVM]), sampler.getArchiveFileName());
 
-        await("awaiting SampleCollector to exist").atMost(30, SECONDS)
+        await("awaiting SampleCollector to exist")
             .until(() -> sampler.getSampleCollector() != null);
 
         SampleCollector sampleCollector = sampler.getSampleCollector();
@@ -204,7 +203,7 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
       assertTrue(sampler.isAlive());
       assertEquals(new File(subArchive), sampler.getArchiveFileName());
 
-      await("awaiting SampleCollector to exist").atMost(30, SECONDS)
+      await("awaiting SampleCollector to exist")
           .until(() -> sampler.getSampleCollector() != null);
 
       SampleCollector sampleCollector = sampler.getSampleCollector();
@@ -250,7 +249,7 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
               // assert that sub is in rml membership
               assertNotNull(rml);
 
-              await("awaiting Membership to contain subMember").atMost(30, SECONDS)
+              await("awaiting Membership to contain subMember")
                   .until(() -> rml.contains(subMember) && rml.size() == NUM_PUBS);
 
               // publish lots of puts cycling through the NUM_KEYS
@@ -290,7 +289,7 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
               Statistics statSamplerStats = statsArray[0];
               int initialSampleCount = statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT);
 
-              await("awaiting sampleCount >= 2").atMost(30, SECONDS).until(() -> statSamplerStats
+              await("awaiting sampleCount >= 2").until(() -> statSamplerStats
                   .getInt(StatSamplerStats.SAMPLE_COUNT) >= initialSampleCount + 2);
             });
       }
@@ -312,7 +311,7 @@ public class StatisticsDistributedTest extends JUnit4CacheTestCase {
       Statistics statSamplerStats = statsArray[0];
       int initialSampleCount = statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT);
 
-      await("awaiting sampleCount >= 2").atMost(30, SECONDS).until(
+      await("awaiting sampleCount >= 2").until(
           () -> statSamplerStats.getInt(StatSamplerStats.SAMPLE_COUNT) >= initialSampleCount + 2);
 
       // now post total updateEvents to static
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/tcp/TCPConduitDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/tcp/TCPConduitDUnitTest.java
index 29ab70c..4da4a18 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/internal/tcp/TCPConduitDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/tcp/TCPConduitDUnitTest.java
@@ -14,14 +14,14 @@
  */
 package org.apache.geode.internal.tcp;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -95,7 +95,7 @@ public class TCPConduitDUnitTest extends DistributedTestCase {
     Thread.sleep(5000);
 
     try {
-      Awaitility.await("for message to be sent").atMost(10, TimeUnit.SECONDS).until(() -> {
+      await("for message to be sent").until(() -> {
         final SerialAckedMessage serialAckedMessage = new SerialAckedMessage();
         serialAckedMessage.send(system.getAllOtherMembers(), false);
         return true;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
index 7e15c38..056768b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
@@ -16,7 +16,6 @@ package org.apache.geode.management;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.REDUNDANCY_ZONE;
-import static org.apache.geode.management.MXBeanAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
@@ -50,6 +49,7 @@ import org.apache.geode.management.internal.MBeanJMXAdapter;
 import org.apache.geode.management.internal.ManagementConstants;
 import org.apache.geode.management.internal.NotificationHub.NotificationHubListener;
 import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
 import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
@@ -358,13 +358,14 @@ public class CacheManagementDUnitTest implements Serializable {
 
       ObjectName memberMBeanName = service.getMemberMBeanName(otherMember);
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(service.getMBeanProxy(memberMBeanName, MemberMXBean.class)).isNotNull());
       MemberMXBean memberMXBean = service.getMBeanProxy(memberMBeanName, MemberMXBean.class);
 
       // Ensure Data getting federated from Managing node
       long start = memberMXBean.getMemberUpTime();
-      await().untilAsserted(() -> assertThat(memberMXBean.getMemberUpTime()).isGreaterThan(start));
+      GeodeAwaitility.await()
+          .untilAsserted(() -> assertThat(memberMXBean.getMemberUpTime()).isGreaterThan(start));
     });
   }
 
@@ -574,8 +575,9 @@ public class CacheManagementDUnitTest implements Serializable {
   private void verifyExpectedMembers(final int otherMembersCount) {
     String alias = "awaiting " + this.managementTestRule.getOtherNormalMembers() + " to have size "
         + otherMembersCount;
-    await(alias).untilAsserted(() -> assertThat(this.managementTestRule.getOtherNormalMembers())
-        .hasSize(otherMembersCount));
+    GeodeAwaitility.await(alias)
+        .untilAsserted(() -> assertThat(this.managementTestRule.getOtherNormalMembers())
+            .hasSize(otherMembersCount));
   }
 
   private void invokeRemoteMemberMXBeanOps() {
@@ -629,7 +631,7 @@ public class CacheManagementDUnitTest implements Serializable {
     memberVM3.invoke("createNotificationRegion", () -> createNotificationRegion(memberId3));
 
     managerVM.invoke("verify notifications size", () -> {
-      await().untilAsserted(() -> assertThat(notifications.size()).isEqualTo(45));
+      GeodeAwaitility.await().untilAsserted(() -> assertThat(notifications.size()).isEqualTo(45));
 
       Cache cache = this.managementTestRule.getCache();
 
@@ -640,9 +642,9 @@ public class CacheManagementDUnitTest implements Serializable {
       // Even though we got 15 notification only 10 should be there due to
       // eviction attributes set in notification region
 
-      await().untilAsserted(() -> assertThat(region1).hasSize(10));
-      await().untilAsserted(() -> assertThat(region2).hasSize(10));
-      await().untilAsserted(() -> assertThat(region3).hasSize(10));
+      GeodeAwaitility.await().untilAsserted(() -> assertThat(region1).hasSize(10));
+      GeodeAwaitility.await().untilAsserted(() -> assertThat(region2).hasSize(10));
+      GeodeAwaitility.await().untilAsserted(() -> assertThat(region3).hasSize(10));
     });
   }
 
@@ -651,7 +653,8 @@ public class CacheManagementDUnitTest implements Serializable {
     Map<ObjectName, NotificationHubListener> notificationHubListenerMap =
         service.getNotificationHub().getListenerObjectMap();
 
-    await().untilAsserted(() -> assertThat(notificationHubListenerMap.size()).isEqualTo(1));
+    GeodeAwaitility.await()
+        .untilAsserted(() -> assertThat(notificationHubListenerMap.size()).isEqualTo(1));
 
     RegionFactory regionFactory =
         this.managementTestRule.getCache().createRegionFactory(RegionShortcut.REPLICATE);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/ClientHealthStatsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/ClientHealthStatsDUnitTest.java
index 99de6d4..bf21c2a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/ClientHealthStatsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/ClientHealthStatsDUnitTest.java
@@ -17,11 +17,11 @@ package org.apache.geode.management;
 
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_ID;
 import static org.apache.geode.distributed.ConfigurationProperties.DURABLE_CLIENT_TIMEOUT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -154,7 +154,7 @@ public class ClientHealthStatsDUnitTest implements Serializable {
     // start durable client1 again
     client1 = createDurableClient(2);
     // wait for full queue dispatch
-    client1.invoke(() -> Awaitility.await().until(() -> lastKeyReceived));
+    client1.invoke(() -> await().until(() -> lastKeyReceived));
 
     // verify the stats
     server.invoke(() -> {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/CompositeTypeTestDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/CompositeTypeTestDUnitTest.java
index 97b28a3..91ffb22 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/CompositeTypeTestDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/CompositeTypeTestDUnitTest.java
@@ -14,20 +14,18 @@
  */
 package org.apache.geode.management;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.geode.management.internal.MBeanJMXAdapter;
 import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.VM;
 
 /**
@@ -75,7 +73,8 @@ public class CompositeTypeTestDUnitTest implements Serializable {
       ObjectName objectName =
           new ObjectName("GemFire:service=custom,type=composite,member=" + memberId);
 
-      await().until(() -> service.getMBeanInstance(objectName, CompositeTestMXBean.class) != null);
+      GeodeAwaitility.await()
+          .until(() -> service.getMBeanInstance(objectName, CompositeTestMXBean.class) != null);
 
       CompositeTestMXBean compositeTestMXBean =
           service.getMBeanInstance(objectName, CompositeTestMXBean.class);
@@ -100,7 +99,4 @@ public class CompositeTypeTestDUnitTest implements Serializable {
         () -> this.managementTestRule.getDistributedMember().getId());
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/DLockManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/DLockManagementDUnitTest.java
index e93d80a..b41f15f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/DLockManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/DLockManagementDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.apache.geode.internal.process.ProcessUtils.identifyPid;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getDistributedLockServiceName;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getLockServiceMBeanName;
@@ -26,8 +25,6 @@ import java.util.Set;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -35,6 +32,7 @@ import org.apache.geode.distributed.DistributedLockService;
 import org.apache.geode.distributed.DistributedMember;
 import org.apache.geode.distributed.internal.locks.DLockService;
 import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.VM;
 
 
@@ -103,7 +101,7 @@ public class DLockManagementDUnitTest implements Serializable {
 
       for (final DistributedMember member : otherMembers) {
         ObjectName objectName = service.getRegionMBeanName(member, LOCK_SERVICE_NAME);
-        await()
+        GeodeAwaitility.await()
             .untilAsserted(() -> assertThat(lockServiceMXBeanIsGone(service, objectName)).isTrue());
       }
     });
@@ -226,7 +224,7 @@ public class DLockManagementDUnitTest implements Serializable {
       ManagementService service = this.managementTestRule.getManagementService();
 
       if (memberCount == 0) {
-        await().untilAsserted(
+        GeodeAwaitility.await().untilAsserted(
             () -> assertThat(service.getDistributedLockServiceMXBean(LOCK_SERVICE_NAME)).isNull());
         return;
       }
@@ -241,7 +239,8 @@ public class DLockManagementDUnitTest implements Serializable {
   private DistributedSystemMXBean awaitDistributedSystemMXBean() {
     ManagementService service = this.managementTestRule.getManagementService();
 
-    await().untilAsserted(() -> assertThat(service.getDistributedSystemMXBean()).isNotNull());
+    GeodeAwaitility.await()
+        .untilAsserted(() -> assertThat(service.getDistributedSystemMXBean()).isNotNull());
 
     return service.getDistributedSystemMXBean();
   }
@@ -253,7 +252,7 @@ public class DLockManagementDUnitTest implements Serializable {
       final String lockServiceName, final int memberCount) {
     ManagementService service = this.managementTestRule.getManagementService();
 
-    await().untilAsserted(() -> {
+    GeodeAwaitility.await().untilAsserted(() -> {
       assertThat(service.getDistributedLockServiceMXBean(lockServiceName)).isNotNull();
       assertThat(service.getDistributedLockServiceMXBean(lockServiceName).getMemberCount())
           .isEqualTo(memberCount);
@@ -270,7 +269,7 @@ public class DLockManagementDUnitTest implements Serializable {
     SystemManagementService service = this.managementTestRule.getSystemManagementService();
     ObjectName lockServiceMXBeanName = service.getLockServiceMBeanName(member, lockServiceName);
 
-    await().untilAsserted(
+    GeodeAwaitility.await().untilAsserted(
         () -> assertThat(service.getMBeanProxy(lockServiceMXBeanName, LockServiceMXBean.class))
             .isNotNull());
 
@@ -283,7 +282,7 @@ public class DLockManagementDUnitTest implements Serializable {
   private LockServiceMXBean awaitLockServiceMXBean(final String lockServiceName) {
     SystemManagementService service = this.managementTestRule.getSystemManagementService();
 
-    await().untilAsserted(
+    GeodeAwaitility.await().untilAsserted(
         () -> assertThat(service.getLocalLockServiceMBean(lockServiceName)).isNotNull());
 
     return service.getLocalLockServiceMBean(lockServiceName);
@@ -295,11 +294,8 @@ public class DLockManagementDUnitTest implements Serializable {
   private void awaitLockServiceMXBeanIsNull(final String lockServiceName) {
     SystemManagementService service = this.managementTestRule.getSystemManagementService();
 
-    await().untilAsserted(
+    GeodeAwaitility.await().untilAsserted(
         () -> assertThat(service.getLocalLockServiceMBean(lockServiceName)).isNull());
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(MAX_WAIT_MILLIS, MILLISECONDS);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/DiskManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/DiskManagementDUnitTest.java
index 9d35913..76b976e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/DiskManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/DiskManagementDUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.management;
 
 import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
@@ -26,8 +27,6 @@ import java.util.concurrent.TimeoutException;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -47,6 +46,7 @@ import org.apache.geode.internal.cache.persistence.PersistentMemberID;
 import org.apache.geode.internal.cache.persistence.PersistentMemberManager;
 import org.apache.geode.internal.process.ProcessUtils;
 import org.apache.geode.management.internal.SystemManagementService;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.VM;
 import org.apache.geode.test.junit.rules.serializable.SerializableTemporaryFolder;
@@ -163,7 +163,7 @@ public class DiskManagementDUnitTest implements Serializable {
 
     AsyncInvocation creatingPersistentRegionAsync = createPersistentRegionAsync(memberVM1);
 
-    memberVM1.invoke(() -> await().until(() -> {
+    memberVM1.invoke(() -> GeodeAwaitility.await().until(() -> {
       GemFireCacheImpl cache = (GemFireCacheImpl) this.managementTestRule.getCache();
       PersistentMemberManager persistentMemberManager = cache.getPersistentMemberManager();
       Map<String, Set<PersistentMemberID>> regions = persistentMemberManager.getWaitingRegions();
@@ -388,7 +388,7 @@ public class DiskManagementDUnitTest implements Serializable {
   private MemberMXBean awaitMemberMXBeanProxy(final DistributedMember member) {
     SystemManagementService service = this.managementTestRule.getSystemManagementService();
     ObjectName objectName = service.getMemberMBeanName(member);
-    await()
+    GeodeAwaitility.await()
         .untilAsserted(
             () -> assertThat(service.getMBeanProxy(objectName, MemberMXBean.class)).isNotNull());
     return service.getMBeanProxy(objectName, MemberMXBean.class);
@@ -399,7 +399,4 @@ public class DiskManagementDUnitTest implements Serializable {
     createPersistentRegionAsync.await(2, MINUTES);
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemDUnitTest.java
index 0ec7da9..92b3b95 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/DistributedSystemDUnitTest.java
@@ -15,7 +15,6 @@
 package org.apache.geode.management;
 
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getDistributedSystemName;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getMemberMBeanName;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getMemberNameOrId;
@@ -41,8 +40,6 @@ import javax.management.NotificationListener;
 import javax.management.ObjectName;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -59,6 +56,7 @@ import org.apache.geode.management.internal.NotificationHub.NotificationHubListe
 import org.apache.geode.management.internal.SystemManagementService;
 import org.apache.geode.management.internal.beans.MemberMBean;
 import org.apache.geode.management.internal.beans.SequenceNumber;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.VM;
 
@@ -240,7 +238,7 @@ public class DistributedSystemDUnitTest implements Serializable {
       ManagementService service = this.managementTestRule.getManagementService();
       DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(distributedSystemMXBean.listMemberObjectNames()).hasSize(5));
 
       for (ObjectName objectName : distributedSystemMXBean.listMemberObjectNames()) {
@@ -284,7 +282,7 @@ public class DistributedSystemDUnitTest implements Serializable {
     }
 
     this.managerVM.invoke("checkNotificationsAndRemoveListeners", () -> {
-      await().untilAsserted(() -> assertThat(notifications).hasSize(3));
+      GeodeAwaitility.await().untilAsserted(() -> assertThat(notifications).hasSize(3));
 
       notifications.clear();
 
@@ -319,7 +317,7 @@ public class DistributedSystemDUnitTest implements Serializable {
       ManagementService service = this.managementTestRule.getManagementService();
       DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(distributedSystemMXBean.listMemberObjectNames()).hasSize(5));
 
       for (ObjectName objectName : distributedSystemMXBean.listMemberObjectNames()) {
@@ -406,7 +404,7 @@ public class DistributedSystemDUnitTest implements Serializable {
   private void verifyAlertAppender(final VM memberVM, final DistributedMember member,
       final int alertLevel) {
     memberVM.invoke("verifyAlertAppender",
-        () -> await().untilAsserted(
+        () -> GeodeAwaitility.await().untilAsserted(
             () -> assertThat(AlertAppender.getInstance().hasAlertListener(member, alertLevel))
                 .isTrue()));
   }
@@ -416,9 +414,9 @@ public class DistributedSystemDUnitTest implements Serializable {
     managerVM.invoke("verifyAlertCount", () -> {
       AlertNotificationListener listener = AlertNotificationListener.getInstance();
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(listener.getSevereAlertCount()).isEqualTo(expectedSevereAlertCount));
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(listener.getWarningAlertCount()).isEqualTo(expectedWarningAlertCount));
     });
   }
@@ -475,7 +473,7 @@ public class DistributedSystemDUnitTest implements Serializable {
       ManagementService service = this.managementTestRule.getManagementService();
       DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
 
-      await()
+      GeodeAwaitility.await()
           .untilAsserted(() -> assertThat(distributedSystemMXBean.getMemberCount()).isEqualTo(5));
 
       Set<DistributedMember> otherMemberSet = this.managementTestRule.getOtherNormalMembers();
@@ -503,7 +501,7 @@ public class DistributedSystemDUnitTest implements Serializable {
       DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
       distributedSystemMXBean.shutDownAllMembers();
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(this.managementTestRule.getOtherNormalMembers()).hasSize(0));
     });
   }
@@ -513,7 +511,7 @@ public class DistributedSystemDUnitTest implements Serializable {
       ManagementService service = this.managementTestRule.getManagementService();
       DistributedSystemMXBean distributedSystemMXBean = service.getDistributedSystemMXBean();
 
-      await().untilAsserted(
+      GeodeAwaitility.await().untilAsserted(
           () -> assertThat(distributedSystemMXBean.listMemberObjectNames()).hasSize(memberCount));
 
       String memberId = this.managementTestRule.getDistributedMember().getId();
@@ -523,10 +521,6 @@ public class DistributedSystemDUnitTest implements Serializable {
     });
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
-
   private static class DistributedSystemNotificationListener implements NotificationListener {
 
     @Override
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
index a49adb2..3bd361a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
@@ -15,12 +15,10 @@
 
 package org.apache.geode.management;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static java.util.stream.Collectors.toList;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.SoftAssertions.assertSoftly;
-import static org.awaitility.Awaitility.waitAtMost;
 
 import java.io.IOException;
 import java.util.List;
@@ -223,7 +221,7 @@ public class JMXMBeanReconnectDUnitTest {
 
   private void waitForMBeanFederationFrom(int numMemberMBeans, MemberVM member) {
     String memberName = "server-" + member.getVM().getId();
-    waitAtMost(10, SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       List<ObjectName> beans = getFederatedGemfireBeansFrom(locator1);
       List<ObjectName> beanList =
           beans.stream().filter(b -> b.toString().contains(memberName)).sorted().collect(toList());
@@ -276,7 +274,7 @@ public class JMXMBeanReconnectDUnitTest {
   }
 
   private void waitForLocatorsToAgreeOnMembership() {
-    waitAtMost(1, MINUTES)
+    await()
         .until(
             () -> {
               int locator1BeanCount =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/LocatorManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/LocatorManagementDUnitTest.java
index 063c064..c64a3a3 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/LocatorManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/LocatorManagementDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_HTTP_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
@@ -23,8 +22,8 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPort;
 import static org.apache.geode.management.MXBeanAwaitility.awaitLocalLocatorMXBean;
 import static org.apache.geode.management.MXBeanAwaitility.awaitLocatorMXBeanProxy;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.net.InetAddress;
@@ -222,7 +221,7 @@ public class LocatorManagementDUnitTest extends ManagementTestBase {
     locatorVM.invoke("validateManagers", () -> {
       LocatorMXBean locatorMXBean = awaitLocalLocatorMXBean();
 
-      await().atMost(2, MINUTES)
+      await()
           .untilAsserted(() -> assertThat(locatorMXBean.listManagers()).hasSize(1));
     });
   }
@@ -232,7 +231,7 @@ public class LocatorManagementDUnitTest extends ManagementTestBase {
     locatorVM.invoke("List Willing Managers", () -> {
       LocatorMXBean locatorMXBean = awaitLocalLocatorMXBean();
 
-      await().atMost(2, MINUTES)
+      await()
           .untilAsserted(() -> assertThat(locatorMXBean.listPotentialManagers())
               .hasSize(expectedNumberPotentialManagers));
     });
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/MemberMBeanAttributesDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/MemberMBeanAttributesDUnitTest.java
index dafe64a..eecdb54 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/MemberMBeanAttributesDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/MemberMBeanAttributesDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management;
 
-import static org.apache.geode.management.MXBeanAwaitility.await;
 import static org.apache.geode.management.MXBeanAwaitility.getSystemManagementService;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -35,6 +34,7 @@ import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.process.ProcessUtils;
 import org.apache.geode.internal.statistics.HostStatSampler;
 import org.apache.geode.internal.statistics.SampleCollector;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.VM;
 
 /**
@@ -177,7 +177,8 @@ public class MemberMBeanAttributesDUnitTest extends ManagementTestBase {
       assertThat(memberMXBean.getClassPath()).isEqualTo(getClassPath());
       assertThat(memberMXBean.getCurrentTime()).isGreaterThan(0);
 
-      await().untilAsserted(() -> assertThat(memberMXBean.getMemberUpTime()).isGreaterThan(0));
+      GeodeAwaitility.await()
+          .untilAsserted(() -> assertThat(memberMXBean.getMemberUpTime()).isGreaterThan(0));
 
       assertThat(memberMXBean.getUsedMemory()).isGreaterThan(10);
       assertThat(memberMXBean.getCurrentHeapSize()).isGreaterThan(10);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/OffHeapManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
index 84a3bb4..6cf592e 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/OffHeapManagementDUnitTest.java
@@ -19,8 +19,8 @@ import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_START;
 import static org.apache.geode.distributed.ConfigurationProperties.OFF_HEAP_MEMORY_SIZE;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.fail;
 
 import java.lang.management.ManagementFactory;
@@ -28,7 +28,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
 import javax.management.Attribute;
 import javax.management.AttributeList;
@@ -853,7 +852,7 @@ public class OffHeapManagementDUnitTest extends CacheTestCase {
    * @param wait how long to wait for in millis.
    */
   private void waitForNotificationListenerOnVm(final VM vm, final long wait) {
-    vm.invoke(() -> await("Awaiting Notification Listener").atMost(wait, TimeUnit.MILLISECONDS)
+    vm.invoke(() -> await("Awaiting Notification Listener")
         .untilAsserted(() -> assertThat(notificationListener.getNotificationSize() > 0).isTrue()));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/QueryDataDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/QueryDataDUnitTest.java
index b4e0f5d..dcc69d1 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/QueryDataDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/QueryDataDUnitTest.java
@@ -21,6 +21,7 @@ import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.FixedPartitionAttributes.createFixedPartition;
 import static org.apache.geode.cache.query.Utils.createPortfoliosAndPositions;
 import static org.apache.geode.management.internal.ManagementConstants.DEFAULT_QUERY_LIMIT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.anything;
 import static org.hamcrest.Matchers.equalTo;
@@ -37,7 +38,6 @@ import java.util.concurrent.TimeoutException;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionFactory;
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -726,14 +726,6 @@ public class QueryDataDUnitTest implements Serializable {
     return service.getDistributedRegionMXBean(name);
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
-
-  private ConditionFactory await(final String alias) {
-    return Awaitility.await(alias).atMost(2, MINUTES);
-  }
-
   private static class TestPartitionResolver implements PartitionResolver {
 
     @Override
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/RegionManagementDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/RegionManagementDUnitTest.java
index 2a75128..df261a8 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/RegionManagementDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/RegionManagementDUnitTest.java
@@ -16,7 +16,6 @@ package org.apache.geode.management;
 
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
 import static java.util.Calendar.MONTH;
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.EvictionAction.LOCAL_DESTROY;
 import static org.apache.geode.cache.Region.SEPARATOR;
 import static org.apache.geode.cache.RegionShortcut.LOCAL;
@@ -32,6 +31,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.STATISTIC_SAM
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getDistributedRegionMbeanName;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getMemberMBeanName;
 import static org.apache.geode.management.internal.MBeanJMXAdapter.getRegionMBeanName;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.apache.geode.test.dunit.Invoke.invokeInEveryVM;
 import static org.apache.geode.test.dunit.VM.getVM;
@@ -56,8 +56,6 @@ import javax.management.Notification;
 import javax.management.NotificationListener;
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -352,14 +350,6 @@ public class RegionManagementDUnitTest implements Serializable {
     managerVM.invoke(() -> verifyEntrySize(regionName, 3));
   }
 
-  private ConditionFactory await() {
-    return await(null);
-  }
-
-  private ConditionFactory await(final String alias) {
-    return Awaitility.await(alias).atMost(5, MINUTES);
-  }
-
   private InternalCache getCache() {
     return cacheRule.getCache();
   }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/UniversalMembershipListenerAdapterDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/UniversalMembershipListenerAdapterDUnitTest.java
index 683d2e0..acfe49c 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/UniversalMembershipListenerAdapterDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/UniversalMembershipListenerAdapterDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_CIPHERS;
 import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_ENABLED;
@@ -26,11 +25,11 @@ import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.internal.DistributionConfig.RESTRICT_MEMBERSHIP_PORT_RANGE;
 import static org.apache.geode.internal.AvailablePort.SOCKET;
 import static org.apache.geode.internal.AvailablePort.getRandomAvailablePort;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
 import static org.apache.geode.test.dunit.Wait.pause;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -1446,12 +1445,12 @@ public class UniversalMembershipListenerAdapterDUnitTest extends ClientServerTes
     createRegion(name, factory.create());
     assertThat(getRootRegion().getSubregion(name)).isNotNull();
 
-    await("wait for join").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for join").until(() -> {
       synchronized (adapter) {
         return firedAdapter[JOINED];
       }
     });
-    await("wait for join").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for join").until(() -> {
       synchronized (bridgeListener) {
         return firedBridge[JOINED];
       }
@@ -1503,12 +1502,12 @@ public class UniversalMembershipListenerAdapterDUnitTest extends ClientServerTes
       }
     });
 
-    await("wait for server to leave").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for server to leave").until(() -> {
       synchronized (adapter) {
         return firedAdapter[LEFT] || firedAdapter[CRASHED];
       }
     });
-    await("wait for server to leave").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for server to leave").until(() -> {
       synchronized (bridgeListener) {
         return firedBridge[LEFT] || firedBridge[CRASHED];
       }
@@ -1556,12 +1555,12 @@ public class UniversalMembershipListenerAdapterDUnitTest extends ClientServerTes
     // gather details for later creation of pool...
     assertThat((int) vm0.invoke(() -> serverPort)).isEqualTo(ports[0]);
 
-    await("wait for join").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for join").until(() -> {
       synchronized (adapter) {
         return firedAdapter[JOINED];
       }
     });
-    await("wait for join").atMost(ASYNC_EVENT_WAIT_MILLIS, MILLISECONDS).until(() -> {
+    await("wait for join").until(() -> {
       synchronized (bridgeListener) {
         return firedBridge[JOINED];
       }
@@ -1648,7 +1647,7 @@ public class UniversalMembershipListenerAdapterDUnitTest extends ClientServerTes
     }
 
     void awaitNotification(final long timeout, final TimeUnit unit) {
-      await().atMost(timeout, unit).until(() -> notified.get());
+      await().until(() -> notified.get());
     }
 
     void awaitWithoutNotification(final long timeout, final TimeUnit unit) {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/bean/stats/DistributedSystemStatsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/bean/stats/DistributedSystemStatsDUnitTest.java
index 08c2e39..b7d0f69 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/bean/stats/DistributedSystemStatsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/bean/stats/DistributedSystemStatsDUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.management.bean.stats;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,7 +24,6 @@ import java.util.Set;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionFactory;
 import org.junit.Rule;
 import org.junit.Test;
@@ -96,12 +95,4 @@ public class DistributedSystemStatsDUnitTest implements Serializable {
 
     return service.getDistributedSystemMXBean();
   }
-
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
-
-  private ConditionFactory await(final String alias) {
-    return Awaitility.await(alias).atMost(2, MINUTES);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/MBeanFederationErrorPathDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/MBeanFederationErrorPathDUnitTest.java
index a978274..f3f17b0 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/MBeanFederationErrorPathDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/MBeanFederationErrorPathDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.management.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -21,12 +22,10 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.spy;
 
 import java.rmi.RemoteException;
-import java.util.concurrent.TimeUnit;
 
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -118,7 +117,7 @@ public class MBeanFederationErrorPathDUnitTest {
       cache1.createRegionFactory(RegionShortcut.REPLICATE).create(REGION_NAME);
     });
 
-    Awaitility.waitAtMost(10, TimeUnit.SECONDS).until(() -> bb.getMailbox(bbKey) != null);
+    await().until(() -> bb.getMailbox(bbKey) != null);
     Object e = bb.getMailbox("sync1");
 
     assertThat(e).isNotInstanceOf(NullPointerException.class);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DeployCommandRedeployDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DeployCommandRedeployDUnitTest.java
index 5826c45..daed478 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DeployCommandRedeployDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DeployCommandRedeployDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.management.internal.cli.commands;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
@@ -24,12 +25,10 @@ import java.util.Properties;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -241,7 +240,7 @@ public class DeployCommandRedeployDUnitTest {
       int countToWaitFor = initialCount + numberOfExecutions;
       Callable<Boolean> doneWaiting = () -> COUNT_OF_EXECUTIONS.get() >= countToWaitFor;
 
-      Awaitility.await().atMost(3, TimeUnit.MINUTES).until(doneWaiting);
+      await().until(doneWaiting);
     }
 
     public static void stopExecutionAndThrowAnyException() throws Exception {
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ExecuteFunctionCommandSecurityTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ExecuteFunctionCommandSecurityTest.java
index 2f5a10d..f31e052 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ExecuteFunctionCommandSecurityTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ExecuteFunctionCommandSecurityTest.java
@@ -16,15 +16,14 @@
 package org.apache.geode.management.internal.cli.commands;
 
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
 
-import org.awaitility.Awaitility;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Rule;
@@ -150,7 +149,7 @@ public class ExecuteFunctionCommandSecurityTest implements Serializable {
   }
 
   private static void waitUntilRegionMBeansAreRegistered() {
-    Awaitility.await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       Set<DistributedMember> regionMembers = CliUtil.getRegionAssociatedMembers(REPLICATED_REGION,
           (InternalCache) CacheFactory.getAnyInstance(), true);
       assertThat(regionMembers).hasSize(2);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDUnitTest.java
index 696053e..80b56e8 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RebalanceCommandDUnitTest.java
@@ -17,13 +17,12 @@ package org.apache.geode.management.internal.cli.commands;
 import static java.lang.Math.abs;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Java6Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -320,7 +319,7 @@ public class RebalanceCommandDUnitTest {
   }
 
   private static void waitForManagerMBean() {
-    Awaitility.waitAtMost(120, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       final ManagementService service =
           ManagementService.getManagementService(ClusterStartupRule.getCache());
       final DistributedRegionMXBean bean =
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RemoveCommandJsonDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RemoveCommandJsonDUnitTest.java
index 22a9ff3..72b4eea 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RemoveCommandJsonDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/RemoveCommandJsonDUnitTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.management.internal.cli.commands;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.Serializable;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -72,7 +71,7 @@ public class RemoveCommandJsonDUnitTest implements Serializable {
 
     gfsh.connectAndVerify(locator);
 
-    Awaitility.await().atMost(2, TimeUnit.MINUTES).until(() -> locator.getVM()
+    await().until(() -> locator.getVM()
         .invoke((SerializableCallableIF<Boolean>) this::regionMBeansAreInitialized));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
index 45122c2..1439fc9 100755
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowDeadlockDUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.management.internal.cli.commands;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
@@ -22,7 +23,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -108,7 +108,7 @@ public class ShowDeadlockDUnitTest {
     // This thread locks the lock server2 first, then server1.
     lockTheLocks(server2, server1, countDownLatch);
 
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).pollDelay(5, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> {
           gfsh.executeAndAssertThat(showDeadlockCommand).statusIsSuccess();
           String commandOutput = gfsh.getGfshOutput();
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
index 5752481..f8daf1b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMetricsDUnitTest.java
@@ -16,9 +16,8 @@
 package org.apache.geode.management.internal.cli.commands;
 
 
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 
@@ -67,17 +66,17 @@ public class ShowMetricsDUnitTest {
       dataRegionFactory.create("REGION1");
 
       DistributedMember member = cache.getDistributedSystem().getDistributedMember();
-      await().atMost(120, SECONDS).until(() -> isBeanReady(cache, 5, "", member, serverPort));
+      await().until(() -> isBeanReady(cache, 5, "", member, serverPort));
     });
 
     locator.invoke(() -> {
       Cache cache = ClusterStartupRule.getCache();
       // Wait for all of the relevant beans to be ready
-      await().atMost(120, SECONDS).until(() -> isBeanReady(cache, 1, "", null, 0));
-      await().atMost(120, SECONDS).until(() -> isBeanReady(cache, 2, "REGION1", null, 0));
+      await().until(() -> isBeanReady(cache, 1, "", null, 0));
+      await().until(() -> isBeanReady(cache, 2, "REGION1", null, 0));
 
       DistributedMember member = cache.getDistributedSystem().getDistributedMember();
-      await().atMost(120, SECONDS).until(() -> isBeanReady(cache, 3, "", member, 0));
+      await().until(() -> isBeanReady(cache, 3, "", member, 0));
     });
 
     gfsh.connect(locator);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMissingDiskStoresDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMissingDiskStoresDUnitTest.java
index e1d72b2..d31b81f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMissingDiskStoresDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ShowMissingDiskStoresDUnitTest.java
@@ -15,12 +15,12 @@
 package org.apache.geode.management.internal.cli.commands;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Rule;
@@ -80,7 +80,7 @@ public class ShowMissingDiskStoresDUnitTest {
         .addOption(CliStrings.CREATE_DISK_STORE__DIRECTORY_AND_SIZE, "diskStoreDir");
     gfshConnector.executeAndAssertThat(csb.getCommandString()).statusIsSuccess();
 
-    Awaitility.await().until(() -> {
+    await().until(() -> {
       return new File(server1.getWorkingDir(), "diskStoreDir").exists()
           && new File(server2.getWorkingDir(), "diskStoreDir").exists();
     });
@@ -129,7 +129,7 @@ public class ShowMissingDiskStoresDUnitTest {
   private void checkAsyncResults(AsyncInvocation ai, GfshCommandRule gfsh, int secsToWait)
       throws Exception {
     try {
-      Awaitility.await().atLeast(secsToWait, TimeUnit.SECONDS).until(() -> ai.isDone());
+      await().atLeast(secsToWait, TimeUnit.SECONDS).until(() -> ai.isDone());
     } catch (Exception e) {
       // e.printStackTrace();
     }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/util/MergeLogsDistributedTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/util/MergeLogsDistributedTest.java
index 3639a80..d181e08 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/util/MergeLogsDistributedTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/cli/util/MergeLogsDistributedTest.java
@@ -25,10 +25,8 @@ import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -66,16 +64,16 @@ public class MergeLogsDistributedTest {
     // Especially on Windows, wait for time to pass otherwise all log messages may appear in the
     // same millisecond.
     locator.invoke(() -> LogService.getLogger().info(MESSAGE_1));
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     server.invoke(() -> LogService.getLogger().info(MESSAGE_2));
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     server2.invoke(() -> LogService.getLogger().info(MESSAGE_3));
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
 
     locator.invoke(() -> LogService.getLogger().info(MESSAGE_4));
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     server.invoke(() -> LogService.getLogger().info(MESSAGE_5));
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     server2.invoke(() -> LogService.getLogger().info(MESSAGE_6));
   }
 
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigLocatorRestartDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigLocatorRestartDUnitTest.java
index 561c30f..95e5125 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigLocatorRestartDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ClusterConfigLocatorRestartDUnitTest.java
@@ -15,9 +15,10 @@
 
 package org.apache.geode.management.internal.configuration;
 
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
+
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -71,7 +72,7 @@ public class ClusterConfigLocatorRestartDUnitTest {
 
     gfsh.connectAndVerify(locator0);
 
-    Awaitility.await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> gfsh.executeAndAssertThat("list members").statusIsSuccess()
             .tableHasColumnOnlyWithValues("Name", "locator-0", "server-1", "server-2", "server-3"));
   }
@@ -98,7 +99,7 @@ public class ClusterConfigLocatorRestartDUnitTest {
 
     gfsh.connectAndVerify(locator1);
 
-    Awaitility.await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> gfsh.executeAndAssertThat("list members").statusIsSuccess()
             .tableHasColumnOnlyWithValues("Name", "locator-1", "server-2", "server-3", "server-4"));
   }
@@ -114,10 +115,10 @@ public class ClusterConfigLocatorRestartDUnitTest {
   private void waitForLocatorToReconnect(MemberVM locator) {
     // Ensure that disconnect/reconnect sequence starts otherwise in the next await we might end up
     // with the initial locator instead of a newly created one.
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS)
+    await()
         .until(() -> locator.invoke(() -> TestDisconnectListener.disconnectCount > 0));
 
-    Awaitility.waitAtMost(30, TimeUnit.SECONDS).until(() -> locator.invoke(() -> {
+    await().until(() -> locator.invoke(() -> {
       InternalLocator intLocator = InternalLocator.getLocator();
       return intLocator != null && intLocator.isSharedConfigurationRunning();
     }));
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ConfigurationPersistenceServiceUsingDirDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ConfigurationPersistenceServiceUsingDirDUnitTest.java
index 68d0a48..129330b 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ConfigurationPersistenceServiceUsingDirDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/configuration/ConfigurationPersistenceServiceUsingDirDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management.internal.configuration;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.stream.Collectors.joining;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOAD_CLUSTER_CONFIGURATION_FROM_DIR;
@@ -24,6 +23,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
 import static org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Host.getHost;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -37,7 +37,6 @@ import java.nio.file.StandardCopyOption;
 import java.util.Arrays;
 import java.util.Properties;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionFactory;
 import org.junit.Test;
 
@@ -325,8 +324,4 @@ public class ConfigurationPersistenceServiceUsingDirDUnitTest extends JUnit4Cach
   private String getLocatorStr(final int[] locatorPorts) {
     return Arrays.stream(locatorPorts).mapToObj(p -> "localhost[" + p + "]").collect(joining(","));
   }
-
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestClientIdsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestClientIdsDUnitTest.java
index a52ff3e..e9d543a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestClientIdsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestClientIdsDUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.management.internal.pulse;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -23,7 +23,6 @@ import java.io.Serializable;
 
 import javax.management.ObjectName;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionFactory;
 import org.junit.Before;
 import org.junit.Rule;
@@ -142,8 +141,4 @@ public class TestClientIdsDUnitTest implements Serializable {
 
     return service.getMBeanProxy(objectName, CacheServerMXBean.class);
   }
-
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
 }
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestFunctionsDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestFunctionsDUnitTest.java
index 48f1e2f..bf9c57a 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestFunctionsDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/pulse/TestFunctionsDUnitTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.management.internal.pulse;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.Cache;
@@ -72,15 +71,14 @@ public class TestFunctionsDUnitTest extends ManagementTestBase {
 
   private static Integer getNumOfRunningFunction() {
 
-    Awaitility.waitAtMost(1, TimeUnit.MINUTES)
-        .pollInterval(500, TimeUnit.MILLISECONDS).until(() -> {
-          final ManagementService service = getManagementService();
-          final DistributedSystemMXBean bean = service.getDistributedSystemMXBean();
-          if (bean != null) {
-            return bean.getNumRunningFunctions() > 0;
-          }
-          return false;
-        });
+    await().until(() -> {
+      final ManagementService service = getManagementService();
+      final DistributedSystemMXBean bean = service.getDistributedSystemMXBean();
+      if (bean != null) {
+        return bean.getNumRunningFunctions() > 0;
+      }
+      return false;
+    });
 
     final DistributedSystemMXBean bean = getManagementService().getDistributedSystemMXBean();
     assertNotNull(bean);
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/security/MultiGfshDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/security/MultiGfshDUnitTest.java
index b4d1b98..0003cb5 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/management/internal/security/MultiGfshDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/management/internal/security/MultiGfshDUnitTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.management.internal.security;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -71,7 +70,7 @@ public class MultiGfshDUnitTest {
         GfshCommandRule gfsh = new GfshCommandRule();
         gfsh.secureConnectAndVerify(jmxPort, PortType.jmxManager, "dataRead", "dataRead");
 
-        Awaitility.waitAtMost(5, TimeUnit.MILLISECONDS);
+        await();
         gfsh.close();
       }
     });
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityWithFailoverDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityWithFailoverDUnitTest.java
index b747ec6..560b767 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityWithFailoverDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/security/ClientDataAuthorizationUsingLegacySecurityWithFailoverDUnitTest.java
@@ -19,9 +19,9 @@ import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIE
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTHENTICATOR;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_CLIENT_AUTH_INIT;
 import static org.apache.geode.distributed.ConfigurationProperties.SERIALIZABLE_OBJECT_FILTER;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java b/geode-core/src/distributedTest/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
index 5b884e9..52e6403 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/security/PDXGfshPostProcessorOnRemoteServerTest.java
@@ -16,13 +16,12 @@ package org.apache.geode.security;
 
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -86,7 +85,7 @@ public class PDXGfshPostProcessorOnRemoteServerTest {
 
     // wait until the region bean is visible
     locatorVM.invoke(() -> {
-      Awaitility.await().pollInterval(500, TimeUnit.MICROSECONDS).atMost(2, TimeUnit.MINUTES)
+      await()
           .until(() -> {
             Cache cache = CacheFactory.getAnyInstance();
             Object bean = ManagementService.getManagementService(cache)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
index 7312a16..a45e0f9 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/security/PDXPostProcessorDUnitTest.java
@@ -18,14 +18,13 @@ import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_MANA
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_POST_PROCESSOR;
 import static org.apache.geode.security.SecurityTestUtil.createClientCache;
 import static org.apache.geode.security.SecurityTestUtil.createProxyRegion;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -193,7 +192,7 @@ public class PDXPostProcessorDUnitTest extends JUnit4DistributedTestCase {
 
     PDXPostProcessor pp =
         (PDXPostProcessor) this.server.getCache().getSecurityService().getPostProcessor();
-    Awaitility.await().atMost(2, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> assertThat(pp.getCount()).isEqualTo(2));
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/TXExpirationIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/TXExpirationIntegrationTest.java
index ba887ff..39ddec8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/TXExpirationIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/TXExpirationIntegrationTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.cache.ExpirationAction.DESTROY;
 import static org.apache.geode.cache.ExpirationAction.INVALIDATE;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.spy;
@@ -244,16 +243,16 @@ public class TXExpirationIntegrationTest {
         r -> assertThat(r.get(KEY)).isNull()),
     REGION_IDLE_DESTROY(m -> m.setRegionIdleTimeout(new ExpirationAttributes(1, DESTROY)),
         s -> verify(s, atLeast(1)).afterRegionDestroyName(eq(REGION_NAME)),
-        r -> await().atMost(1, MINUTES).until(() -> r.isDestroyed())),
+        r -> await().until(() -> r.isDestroyed())),
     REGION_IDLE_INVALIDATE(m -> m.setRegionIdleTimeout(new ExpirationAttributes(1, INVALIDATE)),
         s -> verify(s, atLeast(1)).afterRegionInvalidateName(eq(REGION_NAME)),
-        r -> await().atMost(1, MINUTES).until(() -> r.get(KEY) == null)),
+        r -> await().until(() -> r.get(KEY) == null)),
     REGION_TTL_DESTROY(m -> m.setRegionTimeToLive(new ExpirationAttributes(1, DESTROY)),
         s -> verify(s, atLeast(1)).afterRegionDestroyName(eq(REGION_NAME)),
-        r -> await().atMost(1, MINUTES).until(() -> r.isDestroyed())),
+        r -> await().until(() -> r.isDestroyed())),
     REGION_TTL_INVALIDATE(m -> m.setRegionTimeToLive(new ExpirationAttributes(1, INVALIDATE)),
         s -> verify(s, atLeast(1)).afterRegionInvalidateName(eq(REGION_NAME)),
-        r -> await().atMost(1, MINUTES).until(() -> r.get(KEY) == null));
+        r -> await().until(() -> r.get(KEY) == null));
 
     private final Consumer<AttributesMutator> mutatorConsumer;
     private final Consumer<KeyCacheListener> listenerConsumer;
@@ -292,7 +291,7 @@ public class TXExpirationIntegrationTest {
   }
 
   private void awaitEntryExpired(Region region, String key) {
-    await().atMost(1, MINUTES).until(() -> region.getEntry(key) == null || region.get(key) == null);
+    await().until(() -> region.getEntry(key) == null || region.get(key) == null);
   }
 
   private void awaitEntryExpiration(Region region, String key) {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/ConcurrentRegionOperationIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/ConcurrentRegionOperationIntegrationTest.java
index d2a1675..8aec931 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/ConcurrentRegionOperationIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/ConcurrentRegionOperationIntegrationTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
@@ -21,9 +22,7 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.spy;
 
 import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -84,11 +83,9 @@ public class ConcurrentRegionOperationIntegrationTest {
     assertThatExceptionOfType(RegionDestroyedException.class)
         .isThrownBy(() -> region.replace(1, "value", "newvalue"));
 
-    Awaitility.await().pollDelay(0, TimeUnit.MICROSECONDS)
-        .pollInterval(1, TimeUnit.MILLISECONDS)
-        .atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
-          assertEquals(0, offHeapStore.getStats().getObjects());
-        });
+    await().untilAsserted(() -> {
+      assertEquals(0, offHeapStore.getStats().getObjects());
+    });
   }
 
   private Region<Integer, String> createRegion() {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/RegionExpirationIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/RegionExpirationIntegrationTest.java
index 64b39c2..4454213 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/RegionExpirationIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/RegionExpirationIntegrationTest.java
@@ -22,8 +22,8 @@ import static org.apache.geode.cache.ExpirationAction.INVALIDATE;
 import static org.apache.geode.cache.RegionShortcut.LOCAL;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.inOrder;
@@ -83,7 +83,7 @@ public class RegionExpirationIntegrationTest {
     region.getAttributesMutator()
         .setRegionTimeToLive(new ExpirationAttributes(secondTtlSeconds, DESTROY));
 
-    await().atMost(30, SECONDS).until(() -> region.isDestroyed());
+    await().until(() -> region.isDestroyed());
     assertThat(NANOSECONDS.toSeconds(nanoTime() - startNanos))
         .isGreaterThanOrEqualTo(secondTtlSeconds);
   }
@@ -102,7 +102,7 @@ public class RegionExpirationIntegrationTest {
     region.getAttributesMutator()
         .setRegionTimeToLive(new ExpirationAttributes(secondTtlSeconds, DESTROY));
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(region.isDestroyed()).isTrue());
+    await().untilAsserted(() -> assertThat(region.isDestroyed()).isTrue());
     assertThat(NANOSECONDS.toSeconds(nanoTime() - startNanos)).isLessThan(firstTtlSeconds);
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/asyncqueue/AsyncEventQueueEvictionAndExpirationJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/asyncqueue/AsyncEventQueueEvictionAndExpirationJUnitTest.java
index e939c43..2812cd8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/asyncqueue/AsyncEventQueueEvictionAndExpirationJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/asyncqueue/AsyncEventQueueEvictionAndExpirationJUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.cache.asyncqueue;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -22,9 +23,7 @@ import static org.mockito.Mockito.mock;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -109,17 +108,17 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -133,18 +132,18 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
     // In case of eviction one event is evicted that should not be queued.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -158,17 +157,17 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -182,17 +181,17 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -207,10 +206,10 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     LocalRegion lr = (LocalRegion) region;
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, lr.getCachePerfStats().getInvalidates()));
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
 
@@ -226,10 +225,10 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     LocalRegion lr = (LocalRegion) region;
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, lr.getCachePerfStats().getInvalidates()));
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
   }
 
@@ -242,17 +241,17 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
 
@@ -267,17 +266,17 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, region.size()));
 
     // Validate events that are not queued.
     // This guarantees that eviction/expiration is performed and events are
     // sent all the way to Gateway.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, getEventsNotQueuedSize(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
 
@@ -293,10 +292,10 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     // Wait for region to evict/expire events.
     LocalRegion lr = (LocalRegion) region;
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, lr.getDiskRegion().getStats().getNumOverflowOnDisk()));
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
   }
 
@@ -310,10 +309,10 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     // Wait for region to evict/expire events.
     PartitionedRegion pr = (PartitionedRegion) region;
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(1, pr.getDiskRegionStats().getNumOverflowOnDisk()));
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -327,14 +326,14 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
 
-    Awaitility.await().atMost(120, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(4, getEventsReceived(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(120, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(4, events.size()));
 
     assertTrue("Expiration event not arrived", checkForOperation(events, false, true));
@@ -350,14 +349,14 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
         false /* expirationInvalidate */);
 
     // Wait for region to evict/expire events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(0, region.size()));
 
-    Awaitility.await().atMost(120, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(4, getEventsReceived(aeqId)));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(120, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(4, events.size()));
 
     assertTrue("Expiration event not arrived", checkForOperation(events, false, true));
@@ -376,11 +375,11 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     // Wait for region to evict/expire events.
     LocalRegion lr = (LocalRegion) region;
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, lr.getCachePerfStats().getInvalidates()));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -397,11 +396,11 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
     // Wait for region to evict/expire events.
     LocalRegion lr = (LocalRegion) region;
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, lr.getCachePerfStats().getInvalidates()));
 
     // The AQListner should get expected events.
-    Awaitility.await().atMost(60, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(2, events.size()));
 
   }
@@ -428,7 +427,7 @@ public class AsyncEventQueueEvictionAndExpirationJUnitTest {
 
 
   private void waitForAEQEventsNotQueued() {
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       return (getEventsNotQueuedSize(aeqId) >= 1);
     });
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
index 64bde15..0c3afb8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.cache.client.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
@@ -39,11 +40,8 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 
 import junit.framework.Assert;
-import org.awaitility.Awaitility;
-import org.awaitility.Duration;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -281,7 +279,7 @@ public class AutoConnectionSourceImplJUnitTest {
     ServerLocation location = new ServerLocation("1.1.1.1", 0);
 
     InternalClientMembership.notifyServerJoined(location);
-    Awaitility.await("wait for listener notification").atMost(10, TimeUnit.SECONDS).until(() -> {
+    await("wait for listener notification").until(() -> {
       synchronized (listenerEvents) {
         return listenerEvents[0] != null;
       }
@@ -294,7 +292,7 @@ public class AutoConnectionSourceImplJUnitTest {
 
     listenerEvents[0] = null;
     InternalClientMembership.notifyServerJoined(location);
-    Awaitility.await("wait for listener notification").atMost(10, TimeUnit.SECONDS).until(() -> {
+    await("wait for listener notification").until(() -> {
       synchronized (listenerEvents) {
         return listenerEvents[0] != null;
       }
@@ -363,15 +361,14 @@ public class AutoConnectionSourceImplJUnitTest {
     handler.nextLocatorListResponse = new LocatorListResponse(locators, false);
 
     try {
-      Awaitility.await().pollDelay(new Duration(200, TimeUnit.MILLISECONDS))
-          .atMost(500, TimeUnit.MILLISECONDS).until(() -> {
-            return source.getOnlineLocators().isEmpty();
-          });
+      await().until(() -> {
+        return source.getOnlineLocators().isEmpty();
+      });
       startFakeLocator();
 
       server.join(1000);
 
-      Awaitility.await().atMost(5000, TimeUnit.MILLISECONDS).until(() -> {
+      await().until(() -> {
 
         return source.getOnlineLocators().size() == 1;
       });
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/SingleHopClientExecutorWithLoggingIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/SingleHopClientExecutorWithLoggingIntegrationTest.java
index 88f70f1..56a1acf 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/SingleHopClientExecutorWithLoggingIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/SingleHopClientExecutorWithLoggingIntegrationTest.java
@@ -16,9 +16,8 @@
  */
 package org.apache.geode.cache.client.internal;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import org.junit.Ignore;
 import org.junit.Rule;
@@ -60,7 +59,7 @@ public class SingleHopClientExecutorWithLoggingIntegrationTest {
     /*
      * Sometimes need to wait for more than sec as thread execution takes time.
      */
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(systemErrRule.getLog()).contains(message));
   }
 }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
index 37858fc..0cd9fb3 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/pooling/ConnectionManagerJUnitTest.java
@@ -14,9 +14,9 @@
  */
 package org.apache.geode.cache.client.internal.pooling;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.fail;
 
@@ -32,7 +32,6 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -619,7 +618,7 @@ public class ConnectionManagerJUnitTest {
         waitUntilReady(ready, thread1);
         // the other thread will now try to close the connection map but it will block
         // because this thread has locked one of the connections
-        Awaitility.await().atMost(5, SECONDS).until(() -> connectionMap.closing);
+        await().until(() -> connectionMap.closing);
         try {
           connectionManager.borrowConnection(0);
           fail("expected a CacheClosedException");
@@ -647,7 +646,7 @@ public class ConnectionManagerJUnitTest {
   private void waitUntilReady(boolean[] ready, int index) {
     System.out.println(
         Thread.currentThread().getName() + ": waiting for thread" + (index + 1) + " to be ready");
-    Awaitility.await().atMost(20, SECONDS).until(() -> {
+    await().until(() -> {
       synchronized (ready) {
         return (ready[index]);
       }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/snapshot/WanSnapshotJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/snapshot/WanSnapshotJUnitTest.java
index 3d1cdf7..9cf832b 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/snapshot/WanSnapshotJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/snapshot/WanSnapshotJUnitTest.java
@@ -14,15 +14,14 @@
  */
 package org.apache.geode.cache.snapshot;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.examples.snapshot.MyObject;
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -50,7 +49,7 @@ public class WanSnapshotJUnitTest extends SnapshotTestCase {
     region.getSnapshotService().save(snapshot, SnapshotFormat.GEMFIRE);
     region.clear();
 
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).pollInterval(100, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> wan.ticker.compareAndSet(count, 0));
 
     region.getSnapshotService().load(snapshot, SnapshotFormat.GEMFIRE);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache30/ShorteningExpirationTimeRegressionTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache30/ShorteningExpirationTimeRegressionTest.java
index 8dcdf8c..ebce06c 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache30/ShorteningExpirationTimeRegressionTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache30/ShorteningExpirationTimeRegressionTest.java
@@ -14,8 +14,7 @@
  */
 package org.apache.geode.cache30;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
@@ -77,7 +76,7 @@ public class ShorteningExpirationTimeRegressionTest {
     region.put(KEY, "quickExpire");
 
     // make sure the entry is invalidated before LONG_WAIT_MS (timeout shortened)
-    await().atMost(LONG_WAIT_MS / 2, MILLISECONDS).until(() -> !region.containsValueForKey(KEY));
+    await().until(() -> !region.containsValueForKey(KEY));
   }
 
   @Test
@@ -94,7 +93,7 @@ public class ShorteningExpirationTimeRegressionTest {
     region.get(KEY);
 
     // make sure the entry is invalidated before LONG_WAIT_MS (timeout shortened)
-    await().atMost(LONG_WAIT_MS / 2, MILLISECONDS).until(() -> !region.containsValueForKey(KEY));
+    await().until(() -> !region.containsValueForKey(KEY));
   }
 
   private class CustomExpiryTestClass<K, V> implements CustomExpiry<K, V> {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherIntegrationTestCase.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherIntegrationTestCase.java
index 9f723b3..aa45f77 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherIntegrationTestCase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherIntegrationTestCase.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.internal.AvailablePort.SOCKET;
 import static org.apache.geode.internal.AvailablePort.isPortAvailable;
@@ -37,8 +36,6 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.commons.lang.StringUtils;
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -52,6 +49,7 @@ import org.apache.geode.internal.net.SocketCreatorFactory;
 import org.apache.geode.internal.process.ProcessStreamReader.InputListener;
 import org.apache.geode.internal.process.ProcessType;
 import org.apache.geode.internal.process.lang.AvailablePid;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.IgnoredException;
 
 /**
@@ -101,7 +99,7 @@ public abstract class LauncherIntegrationTestCase {
   protected abstract ProcessType getProcessType();
 
   protected void assertDeletionOf(final File file) {
-    await().untilAsserted(() -> assertThat(file).doesNotExist());
+    GeodeAwaitility.await().untilAsserted(() -> assertThat(file).doesNotExist());
   }
 
   protected void assertThatServerPortIsFree(final int serverPort) {
@@ -162,10 +160,6 @@ public abstract class LauncherIntegrationTestCase {
     givenPortInUse(serverPort);
   }
 
-  protected ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
-
   protected InputListener createExpectedListener(final String name, final String expected,
       final AtomicBoolean atomic) {
     return new InputListener() {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherMemberMXBeanIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherMemberMXBeanIntegrationTest.java
index b33fd31..d3f1c75 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherMemberMXBeanIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LauncherMemberMXBeanIntegrationTest.java
@@ -15,7 +15,6 @@
 package org.apache.geode.distributed;
 
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static javax.management.MBeanServerInvocationHandler.newProxyInstance;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
@@ -45,6 +44,7 @@ import org.apache.geode.internal.process.ProcessType;
 import org.apache.geode.management.JVMMetrics;
 import org.apache.geode.management.MemberMXBean;
 import org.apache.geode.management.OSMetrics;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Integration tests for querying of {@link MemberMXBean} as used in MBeanProcessController to
@@ -209,7 +209,7 @@ public class LauncherMemberMXBeanIntegrationTest extends LauncherIntegrationTest
   }
 
   private void waitForMemberMXBean(final MBeanServer mbeanServer, final ObjectName pattern) {
-    await().atMost(2, MINUTES)
+    GeodeAwaitility.await()
         .untilAsserted(() -> assertThat(mbeanServer.queryNames(pattern, null)).isNotEmpty());
   }
 }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherIntegrationTestCase.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherIntegrationTestCase.java
index fb09cc1..61c7313 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherIntegrationTestCase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherIntegrationTestCase.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.AbstractLauncher.Status.STOPPED;
 import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_CONFIGURATION_DIR;
 import static org.apache.geode.distributed.ConfigurationProperties.DISABLE_AUTO_RECONNECT;
@@ -40,6 +39,7 @@ import org.apache.geode.distributed.AbstractLauncher.Status;
 import org.apache.geode.distributed.LocatorLauncher.Builder;
 import org.apache.geode.distributed.LocatorLauncher.LocatorState;
 import org.apache.geode.internal.process.ProcessType;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Abstract base class for integration tests of {@link LocatorLauncher}.
@@ -106,7 +106,7 @@ public abstract class LocatorLauncherIntegrationTestCase extends LauncherIntegra
   }
 
   protected LocatorLauncher awaitStart(final LocatorLauncher launcher) {
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(isLauncherOnline()).isTrue());
+    GeodeAwaitility.await().untilAsserted(() -> assertThat(isLauncherOnline()).isTrue());
     return launcher;
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherJmxManagerLocalRegressionTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherJmxManagerLocalRegressionTest.java
index ac984ed..5059f7e 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherJmxManagerLocalRegressionTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherJmxManagerLocalRegressionTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER;
 import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_PORT;
@@ -25,11 +24,11 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Set;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.geode.internal.process.ProcessType;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Regression tests for stopping a JMX Manager process launched with {@link LocatorLauncher}.
@@ -93,7 +92,7 @@ public class LocatorLauncherJmxManagerLocalRegressionTest
   }
 
   private void assertThatThreadsStopped() {
-    Awaitility.await().atMost(30, SECONDS).untilAsserted(
+    GeodeAwaitility.await().untilAsserted(
         () -> assertThat(currentThreadCount())
             .isLessThanOrEqualTo(initialThreadCountPlusAwaitility()));
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
index 896d292..b1df297 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorLauncherRemoteIntegrationTestCase.java
@@ -36,6 +36,7 @@ import org.apache.geode.distributed.LocatorLauncher.Command;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.internal.process.ProcessStreamReader;
 import org.apache.geode.internal.process.ProcessStreamReader.InputListener;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Abstract base class for integration tests of {@link LocatorLauncher} as an application main in a
@@ -87,7 +88,7 @@ public abstract class LocatorLauncherRemoteIntegrationTestCase
   }
 
   protected void assertStopOf(final Process process) {
-    await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
+    GeodeAwaitility.await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
   }
 
   /**
@@ -193,7 +194,8 @@ public abstract class LocatorLauncherRemoteIntegrationTestCase
 
   @Override
   protected LocatorLauncher awaitStart(final LocatorLauncher launcher) {
-    await().untilAsserted(() -> assertThat(launcher.status().getStatus()).isEqualTo(Status.ONLINE));
+    GeodeAwaitility.await()
+        .untilAsserted(() -> assertThat(launcher.status().getStatus()).isEqualTo(Status.ONLINE));
     assertThat(process.isAlive()).isTrue();
     return launcher;
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherIntegrationTestCase.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherIntegrationTestCase.java
index 7c8a841..4636560 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherIntegrationTestCase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherIntegrationTestCase.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.CACHE_XML_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
@@ -45,6 +44,7 @@ import org.apache.geode.internal.cache.xmlcache.CacheCreation;
 import org.apache.geode.internal.cache.xmlcache.CacheXmlGenerator;
 import org.apache.geode.internal.cache.xmlcache.RegionAttributesCreation;
 import org.apache.geode.internal.process.ProcessType;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Abstract base class for integration tests of {@link ServerLauncher}.
@@ -89,7 +89,7 @@ public abstract class ServerLauncherIntegrationTestCase extends LauncherIntegrat
   }
 
   protected ServerLauncher awaitStart(final ServerLauncher launcher) {
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(isLauncherOnline()).isTrue());
+    GeodeAwaitility.await().untilAsserted(() -> assertThat(isLauncherOnline()).isTrue());
     return launcher;
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherRemoteIntegrationTestCase.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherRemoteIntegrationTestCase.java
index 1f66a32..d1f1b72 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherRemoteIntegrationTestCase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/ServerLauncherRemoteIntegrationTestCase.java
@@ -36,6 +36,7 @@ import org.junit.Before;
 import org.apache.geode.distributed.AbstractLauncher.Status;
 import org.apache.geode.internal.process.ProcessStreamReader;
 import org.apache.geode.internal.process.ProcessStreamReader.InputListener;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 
 /**
  * Abstract base class for integration tests of {@link ServerLauncher} as an application main in a
@@ -98,7 +99,7 @@ public abstract class ServerLauncherRemoteIntegrationTestCase
   }
 
   protected void assertStopOf(final Process process) {
-    await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
+    GeodeAwaitility.await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
   }
 
   protected void assertThatPidIsAlive(final int pid) {
@@ -195,7 +196,8 @@ public abstract class ServerLauncherRemoteIntegrationTestCase
 
   @Override
   protected ServerLauncher awaitStart(final ServerLauncher launcher) {
-    await().untilAsserted(() -> assertThat(launcher.status().getStatus()).isEqualTo(Status.ONLINE));
+    GeodeAwaitility.await()
+        .untilAsserted(() -> assertThat(launcher.status().getStatus()).isEqualTo(Status.ONLINE));
     assertThat(process.isAlive()).isTrue();
     return launcher;
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
index e3c9f9b..8001aed 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
@@ -23,6 +23,7 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_TTL;
 import static org.apache.geode.distributed.ConfigurationProperties.MEMBER_TIMEOUT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -51,12 +52,10 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 import java.util.Timer;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.awaitility.Awaitility;
 import org.jgroups.util.UUID;
 import org.junit.After;
 import org.junit.Assert;
@@ -219,8 +218,7 @@ public class GMSHealthMonitorJUnitTest {
     installAView();
     InternalDistributedMember initialNeighbor = mockMembers.get(myAddressIndex + 1);
 
-    Awaitility.await("wait for new neighbor")
-        .atMost((2 * memberTimeout) + 1500, TimeUnit.MILLISECONDS)
+    await("wait for new neighbor")
         .until(() -> gmsHealthMonitor.getNextNeighbor() != initialNeighbor);
     InternalDistributedMember neighbor = gmsHealthMonitor.getNextNeighbor();
 
@@ -246,8 +244,7 @@ public class GMSHealthMonitorJUnitTest {
     System.out.println("next neighbor is " + neighbor + "\nmy address is "
         + mockMembers.get(myAddressIndex) + "\nview is " + joinLeave.getView());
     assertEquals(mockMembers.get(myAddressIndex + 1), neighbor);
-    Awaitility.await("wait for new neighbor")
-        .atMost((2 * memberTimeout) + 1500, TimeUnit.MILLISECONDS)
+    await("wait for new neighbor")
         .until(() -> gmsHealthMonitor.getNextNeighbor() != neighbor);
     long endTime = System.currentTimeMillis();
 
@@ -266,10 +263,9 @@ public class GMSHealthMonitorJUnitTest {
 
     // when the view is installed we start a heartbeat timeout. After
     // that expires we request a heartbeat
-    Awaitility.await().atMost(3 * memberTimeout + 100, TimeUnit.MILLISECONDS)
-        .until(() -> (gmsHealthMonitor.isSuspectMember(mockMembers.get(myAddressIndex + 1))) &&
-            (gmsHealthMonitor.getStats().getHeartbeatRequestsSent() > 0) &&
-            (gmsHealthMonitor.getStats().getSuspectsSent() > 0));
+    await().until(() -> (gmsHealthMonitor.isSuspectMember(mockMembers.get(myAddressIndex + 1))) &&
+        (gmsHealthMonitor.getStats().getHeartbeatRequestsSent() > 0) &&
+        (gmsHealthMonitor.getStats().getSuspectsSent() > 0));
 
     System.out.println("testSuspectMembersCalledThroughMemberCheckThread ending");
   }
@@ -305,8 +301,7 @@ public class GMSHealthMonitorJUnitTest {
     installAView();
     InternalDistributedMember neighbor = gmsHealthMonitor.getNextNeighbor();
 
-    Awaitility.await().atMost(3 * memberTimeout, TimeUnit.MILLISECONDS)
-        .until(() -> gmsHealthMonitor.isSuspectMember(neighbor));
+    await().until(() -> gmsHealthMonitor.isSuspectMember(neighbor));
     long endTime = System.currentTimeMillis();
 
     // member-timeout is 1000 ms
@@ -323,10 +318,8 @@ public class GMSHealthMonitorJUnitTest {
 
     gmsHealthMonitor.suspect(mockMembers.get(1), "Not responding");
 
-    Awaitility.await()
-        .atMost(GMSHealthMonitor.MEMBER_SUSPECT_COLLECTION_INTERVAL + 1000, TimeUnit.MILLISECONDS)
-        .untilAsserted(
-            () -> verify(messenger, atLeastOnce()).send(any(SuspectMembersMessage.class)));
+    await().untilAsserted(
+        () -> verify(messenger, atLeastOnce()).send(any(SuspectMembersMessage.class)));
 
     Assert.assertTrue(gmsHealthMonitor.getStats().getSuspectsSent() > 0);
   }
@@ -369,11 +362,10 @@ public class GMSHealthMonitorJUnitTest {
 
     gmsHealthMonitor.processMessage(sm);
 
-    Awaitility.await("waiting for remove(member) to be invoked")
-        .atMost(3 * memberTimeout, TimeUnit.MILLISECONDS).untilAsserted(() -> {
-          verify(joinLeave, atLeastOnce()).remove(any(InternalDistributedMember.class),
-              any(String.class));
-        });
+    await("waiting for remove(member) to be invoked").untilAsserted(() -> {
+      verify(joinLeave, atLeastOnce()).remove(any(InternalDistributedMember.class),
+          any(String.class));
+    });
     Assert.assertTrue(gmsHealthMonitor.getStats().getSuspectsReceived() > 0);
   }
 
@@ -404,8 +396,8 @@ public class GMSHealthMonitorJUnitTest {
     long preProcess = System.currentTimeMillis();
     gmsHealthMonitor.processMessage(sm);
 
-    Awaitility.await("waiting for remove(member) to be invoked")
-        .atMost(3 * memberTimeout, TimeUnit.MILLISECONDS).untilAsserted(
+    await("waiting for remove(member) to be invoked")
+        .untilAsserted(
             () -> verify(joinLeave, atLeastOnce()).remove(any(InternalDistributedMember.class),
                 any(String.class)));
     long postRemove = System.currentTimeMillis();
@@ -440,10 +432,9 @@ public class GMSHealthMonitorJUnitTest {
 
     gmsHealthMonitor.processMessage(sm);
 
-    Awaitility.await("waiting for remove(member) to be invoked")
-        .atMost(3 * memberTimeout, TimeUnit.MILLISECONDS).untilAsserted(
-            () -> verify(joinLeave, atLeastOnce()).remove(any(InternalDistributedMember.class),
-                any(String.class)));
+    await("waiting for remove(member) to be invoked").untilAsserted(
+        () -> verify(joinLeave, atLeastOnce()).remove(any(InternalDistributedMember.class),
+            any(String.class)));
 
     Assert.assertTrue(gmsHealthMonitor.getStats().getSuspectsReceived() > 0);
   }
@@ -631,7 +622,7 @@ public class GMSHealthMonitorJUnitTest {
     installAView();
 
     gmsHealthMonitor.stop();
-    Awaitility.await().until(() -> gmsHealthMonitor.isShutdown());
+    await().until(() -> gmsHealthMonitor.isShutdown());
 
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
index d87f7e4..a35cc6d 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
@@ -14,8 +14,7 @@
  */
 package org.apache.geode.distributed.internal.membership.gms.membership;
 
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -42,9 +41,7 @@ import java.util.List;
 import java.util.Properties;
 import java.util.Set;
 import java.util.Timer;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Test;
@@ -390,7 +387,7 @@ public class GMSJoinLeaveJUnitTest {
                                                  // change
     GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
 
-    Awaitility.await().atMost(viewInstallationTime, MILLISECONDS)
+    await()
         .until(() -> gmsJoinLeave.getView() != null);
 
     NetView oldView = gmsJoinLeave.getView();
@@ -403,7 +400,7 @@ public class GMSJoinLeaveJUnitTest {
     gmsJoinLeave.memberShutdown(mockMembers[1], "shutting down for test");
     gmsJoinLeave.remove(mockMembers[1], "removing for test");
 
-    Awaitility.await().atMost(viewInstallationTime, MILLISECONDS)
+    await()
         .until(() -> gmsJoinLeave.getView().getViewId() > newView.getViewId());
     assertFalse(gmsJoinLeave.getView().getCrashedMembers().contains(mockMembers[1]));
   }
@@ -670,7 +667,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testBecomeCoordinatorOnStartup() throws Exception {
     initMocks();
     GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
-    Awaitility.await().atMost(20, SECONDS).until(() -> gmsJoinLeave.isCoordinator());
+    await().until(() -> gmsJoinLeave.isCoordinator());
   }
 
   @Test
@@ -880,7 +877,7 @@ public class GMSJoinLeaveJUnitTest {
     gmsJoinLeave.processMessage(installViewMessage);
 
     // this test's member-timeout * 3
-    Awaitility.await().atMost(6, SECONDS)
+    await()
         .until(() -> gmsJoinLeave.getView().getViewId() != oldView.getViewId());
     assertTrue(gmsJoinLeave.isCoordinator());
     // wait for suspect processing
@@ -972,7 +969,7 @@ public class GMSJoinLeaveJUnitTest {
     synchronized (gmsJoinLeave.getViewInstallationLock()) {
       gmsJoinLeave.becomeCoordinator();
     }
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .until(() -> gmsJoinLeave.prepareProcessor.isWaiting());
 
     int newViewId = 6; // becomeCoordinator will bump the initial view Id by 5
@@ -987,9 +984,9 @@ public class GMSJoinLeaveJUnitTest {
     msg.setSender(otherMember);
     gmsJoinLeave.processMessage(msg);
 
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .until(() -> gmsJoinLeave.getViewCreator() != null);
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .until(() -> gmsJoinLeave.getViewCreator().getAbandonedViewCount() > 0);
     assertEquals(installedView, gmsJoinLeave.getView());
 
@@ -1074,7 +1071,7 @@ public class GMSJoinLeaveJUnitTest {
       int viewRequests = gmsJoinLeave.getViewRequests().size();
 
       assertEquals("There should be 1 viewRequest", 1, viewRequests);
-      Awaitility.await().atMost(2 * ServiceConfig.MEMBER_REQUEST_COLLECTION_INTERVAL, MILLISECONDS)
+      await()
           .until(() -> gmsJoinLeave.getViewRequests().size(), equalTo(0));
     } finally {
       System.getProperties().remove(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY);
@@ -1231,7 +1228,7 @@ public class GMSJoinLeaveJUnitTest {
         gmsJoinLeave.processMessage(msg);
       }
 
-      Awaitility.await("waiting for view creator to stop").atMost(5000, MILLISECONDS)
+      await("waiting for view creator to stop")
           .until(() -> !gmsJoinLeave.getViewCreator().isAlive());
       assertEquals(1, gmsJoinLeave.getView().getViewId());
       assertFalse(testLocator.isCoordinator);
@@ -1275,7 +1272,7 @@ public class GMSJoinLeaveJUnitTest {
     vack.setSender(gmsJoinLeaveMemberId);
     gmsJoinLeave.processMessage(vack);
 
-    Awaitility.await("view creator finishes").atMost(30, SECONDS).until(() -> vc.waiting);
+    await("view creator finishes").until(() -> vc.waiting);
     NetView newView = gmsJoinLeave.getView();
     System.out.println("new view is " + newView);
     assertTrue(newView.contains(mockMembers[1]));
@@ -1322,7 +1319,7 @@ public class GMSJoinLeaveJUnitTest {
     vack.setSender(gmsJoinLeaveMemberId);
     gmsJoinLeave.processMessage(vack);
 
-    Awaitility.await("view creator finishes").atMost(30, SECONDS).until(() -> vc.waiting);
+    await("view creator finishes").until(() -> vc.waiting);
     NetView newView = gmsJoinLeave.getView();
     System.out.println("new view is " + newView);
     assertTrue(newView.contains(newMember));
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/JarDeployerDeadlockTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/JarDeployerDeadlockTest.java
index eb2f80c..122c842 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/JarDeployerDeadlockTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/JarDeployerDeadlockTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.ByteArrayInputStream;
@@ -25,10 +26,8 @@ import java.lang.management.ThreadMXBean;
 import java.util.Random;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.IOUtils;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -88,7 +87,7 @@ public class JarDeployerDeadlockTest {
     }
 
     executorService.shutdown();
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(executorService::isTerminated);
+    await().until(executorService::isTerminated);
 
     ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
     long[] threadIds = threadMXBean.findDeadlockedThreads();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/ScheduledThreadPoolExecutorWithKeepAliveJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/ScheduledThreadPoolExecutorWithKeepAliveJUnitTest.java
index b503b6a..1260733 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/ScheduledThreadPoolExecutorWithKeepAliveJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/ScheduledThreadPoolExecutorWithKeepAliveJUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -27,7 +28,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 
@@ -186,12 +186,12 @@ public class ScheduledThreadPoolExecutorWithKeepAliveJUnitTest {
       }
     };
     ScheduledFuture f = ex.scheduleAtFixedRate(run, 0, 1, TimeUnit.SECONDS);
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(
             () -> assertEquals("Task was not executed repeatedly", true, counter.get() > 1));
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals("The task could not be cancelled", true, f.cancel(true)));
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(
             () -> assertEquals("Task was not cancelled within 30 sec", true, f.isCancelled()));
     int oldValue = counter.get();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/AfterRegionCreateNotBeforeRegionInitRegressionTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/AfterRegionCreateNotBeforeRegionInitRegressionTest.java
index c767045..f4a8539 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/AfterRegionCreateNotBeforeRegionInitRegressionTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/AfterRegionCreateNotBeforeRegionInitRegressionTest.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.hamcrest.CoreMatchers.is;
 
 import java.util.concurrent.atomic.AtomicInteger;
@@ -70,7 +69,7 @@ public class AfterRegionCreateNotBeforeRegionInitRegressionTest {
     Region region = cache.createRegion("testRegion", factory.create());
     region.createSubregion("testSubRegion", factory.create());
 
-    await().atMost(1, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(cacheListener.afterRegionCreateCount.get()).isEqualTo(2));
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DeprecatedCacheServerLauncherIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DeprecatedCacheServerLauncherIntegrationTest.java
index c17695d..324be48 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DeprecatedCacheServerLauncherIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DeprecatedCacheServerLauncherIntegrationTest.java
@@ -14,14 +14,13 @@
  */
 package org.apache.geode.internal.cache;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
 import static org.apache.geode.internal.cache.xmlcache.CacheXml.GEODE_NAMESPACE;
 import static org.apache.geode.internal.cache.xmlcache.CacheXml.LATEST_SCHEMA_LOCATION;
 import static org.apache.geode.internal.process.ProcessUtils.isProcessAlive;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assume.assumeFalse;
 
 import java.io.File;
@@ -190,7 +189,7 @@ public class DeprecatedCacheServerLauncherIntegrationTest {
     execAndValidate(".*The CacheServer has stopped\\.", "stop",
         "-dir=" + this.directory.getAbsolutePath());
 
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(cacheServerDotSerFile).doesNotExist());
   }
 
@@ -225,17 +224,17 @@ public class DeprecatedCacheServerLauncherIntegrationTest {
     // now, we will forcefully kill the CacheServer process
     invokeFailSafe();
 
-    await().atMost(2, MINUTES)
+    await()
         .untilAsserted(() -> assertThat(this.processWrapper.getProcess().isAlive()).isFalse());
 
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(isProcessAlive(pid)).isFalse());
+    await().untilAsserted(() -> assertThat(isProcessAlive(pid)).isFalse());
 
     File dotCacheServerDotSerFile = new File(this.directory, ".cacheserver.ser");
 
     // assert that the .cacheserver.ser file remains...
     assertThat(dotCacheServerDotSerFile).exists();
 
-    await().atMost(2, MINUTES)
+    await()
         .until(() -> execAndWaitForOutputToMatch("CacheServer pid: " + pid + " status: stopped",
             "status", "-dir=" + this.directory.getName()));
 
@@ -265,8 +264,8 @@ public class DeprecatedCacheServerLauncherIntegrationTest {
         "cache-xml-file=" + this.cacheXmlFileName, "-dir=" + this.directoryPath,
         "-classpath=" + getManifestJarFromClasspath(), "-rebalance");
 
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(this.status.isStarted()).isTrue());
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(this.status.isFinished()).isTrue());
+    await().untilAsserted(() -> assertThat(this.status.isStarted()).isTrue());
+    await().untilAsserted(() -> assertThat(this.status.isFinished()).isTrue());
 
     execAndValidate("CacheServer pid: \\d+ status: running", "status", "-dir=" + this.directory);
 
@@ -290,8 +289,8 @@ public class DeprecatedCacheServerLauncherIntegrationTest {
         "cache-xml-file=" + this.cacheXmlFileName, "-dir=" + this.directoryPath,
         "-classpath=" + getManifestJarFromClasspath(), "-rebalance");
 
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(this.status.isStarted()).isTrue());
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(this.status.isFinished()).isTrue());
+    await().untilAsserted(() -> assertThat(this.status.isStarted()).isTrue());
+    await().untilAsserted(() -> assertThat(this.status.isFinished()).isTrue());
 
     execAndValidate("CacheServer pid: \\d+ status: running", "status", "-dir=" + this.directory);
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskOldAPIsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskOldAPIsJUnitTest.java
index 747b581..777e6fa 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskOldAPIsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskOldAPIsJUnitTest.java
@@ -26,9 +26,7 @@ import static org.junit.Assert.assertTrue;
 import java.io.File;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -98,7 +96,7 @@ public class DiskOldAPIsJUnitTest {
       r.close();
     }
 
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     dwaf.setSynchronous(false);
     af.setDiskWriteAttributes(dwaf.create());
     r = cache.createRegion("r", af.create());
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
index 1e8d745..b1fdddc 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegRecoveryJUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -28,9 +29,7 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.DiskStore;
@@ -1401,8 +1400,7 @@ public class DiskRegRecoveryJUnitTest extends DiskRegionTestingBase {
 
   private void waitForInVMToBe(final DiskRegion dr, final int expected) {
     // values are recovered async from disk
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> assertEquals(expected, dr.getNumEntriesInVM()));
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionAsyncRecoveryJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionAsyncRecoveryJUnitTest.java
index 4df7811..7c43fab 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionAsyncRecoveryJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionAsyncRecoveryJUnitTest.java
@@ -27,7 +27,6 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.DataPolicy;
@@ -362,7 +361,7 @@ public class DiskRegionAsyncRecoveryJUnitTest extends DiskRegionTestingBase {
       }
     });
 
-    Awaitility.await().atLeast(1, TimeUnit.MILLISECONDS).until(() -> true);
+    Thread.sleep(1);
     try {
       region = createRegion();
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorCloseIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorCloseIntegrationTest.java
index e2af22d..639210d 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorCloseIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorCloseIntegrationTest.java
@@ -20,9 +20,9 @@ import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.LOCAL;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Disconnect.disconnectAllFromDS;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.util.Arrays;
@@ -134,7 +134,7 @@ public class DiskRegionCompactorCloseIntegrationTest {
 
     beforeGoingToCompactLatch.countDown();
 
-    await().atMost(5, MINUTES).untilAsserted(() -> assertThat(afterStoppingCompactor).isTrue());
+    await().untilAsserted(() -> assertThat(afterStoppingCompactor).isTrue());
 
     assertThat(region.isDestroyed()).isTrue();
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
index 95acb04..e781b4f 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionJUnitTest.java
@@ -21,10 +21,10 @@ import static org.apache.geode.cache.EvictionAttributes.createLRUEntryAttributes
 import static org.apache.geode.cache.RegionShortcut.LOCAL;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.catchThrowable;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.io.IOException;
@@ -2375,7 +2375,7 @@ public class DiskRegionJUnitTest {
 
   private void awaitFuture(AtomicReference<Future<Void>> voidFuture)
       throws InterruptedException, ExecutionException, TimeoutException {
-    await().atMost(5, MINUTES).until(() -> voidFuture.get() != null);
+    await().until(() -> voidFuture.get() != null);
     awaitFuture(voidFuture.get());
   }
 
@@ -2518,8 +2518,8 @@ public class DiskRegionJUnitTest {
   }
 
   private void verifyClosedDueToDiskAccessException(Region<?, ?> region) {
-    await().atMost(5, MINUTES).until(() -> getDiskStore(region).isClosed());
-    await().atMost(5, MINUTES).until(() -> cache.isClosed());
+    await().until(() -> getDiskStore(region).isClosed());
+    await().until(() -> cache.isClosed());
     Throwable thrown = catchThrowable(() -> cache.createRegionFactory().create(regionName));
     assertThat(thrown).isInstanceOf(CacheClosedException.class)
         .hasCauseInstanceOf(DiskAccessException.class);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreImplIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreImplIntegrationTest.java
index 7303449..9fa41d0 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreImplIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskStoreImplIntegrationTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
@@ -21,9 +22,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -91,14 +90,14 @@ public class DiskStoreImplIntegrationTest {
     File baseDir = temporaryDirectory.newFolder();
     final int QUEUE_SIZE = 50;
     createRegionWithDiskStoreAndAsyncQueue(baseDir, QUEUE_SIZE);
-    Awaitility.await().atMost(1, TimeUnit.MINUTES).until(() -> diskStoreStats.getQueueSize() == 0);
+    await().until(() -> diskStoreStats.getQueueSize() == 0);
 
     putEntries(QUEUE_SIZE - 1);
-    Awaitility.await().atMost(1, TimeUnit.MINUTES)
+    await()
         .until(() -> diskStoreStats.getQueueSize() == QUEUE_SIZE - 1);
 
     putEntries(1);
-    Awaitility.await().atMost(1, TimeUnit.MINUTES).until(() -> diskStoreStats.getQueueSize() == 0);
+    await().until(() -> diskStoreStats.getQueueSize() == 0);
   }
 
   private void putEntries(int numToPut) {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/InterruptDiskJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/InterruptDiskJUnitTest.java
index bdc2f33..11a9d1f 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/InterruptDiskJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/InterruptDiskJUnitTest.java
@@ -18,8 +18,8 @@ import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.time.Duration;
@@ -90,7 +90,7 @@ public class InterruptDiskJUnitTest {
       }
     });
 
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(puttingThread).isNotNull());
+    await().untilAsserted(() -> assertThat(puttingThread).isNotNull());
     Thread.sleep(Duration.ofSeconds(1).toMillis());
     puttingThread.get().interrupt();
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/MultipleOplogsRollingFeatureJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/MultipleOplogsRollingFeatureJUnitTest.java
index 3bb2950..24931cf 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/MultipleOplogsRollingFeatureJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/MultipleOplogsRollingFeatureJUnitTest.java
@@ -14,14 +14,12 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.cache.Scope;
@@ -81,7 +79,7 @@ public class MultipleOplogsRollingFeatureJUnitTest extends DiskRegionTestingBase
       addEntries(1 /* oplogNumber */, 50 /* byte array size */);
 
       ((LocalRegion) region).getDiskStore().forceCompaction();
-      Awaitility.waitAtMost(15, TimeUnit.SECONDS).until(() -> FLAG == true);
+      await().until(() -> FLAG == true);
       logWriter.info("testMultipleRolling after waitForCompactor");
       // the compactor copied two tombstone and 1 entry to oplog #2
       // The total oplog size will become 429, that why we need to
@@ -138,7 +136,7 @@ public class MultipleOplogsRollingFeatureJUnitTest extends DiskRegionTestingBase
     }
 
     // let the main thread sleep so that rolling gets over
-    Awaitility.waitAtMost(25, TimeUnit.SECONDS).until(() -> FLAG == true);
+    await().until(() -> FLAG == true);
 
     assertTrue("Number of Oplogs to be rolled is not null : this is unexpected",
         diskRegion.getOplogToBeCompacted() == null);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OplogJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OplogJUnitTest.java
index 9d2b9d2..7c41c5d 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OplogJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/OplogJUnitTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -36,7 +37,6 @@ import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.IntStream;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -1046,24 +1046,24 @@ public class OplogJUnitTest extends DiskRegionTestingBase {
 
     assertEquals(0, dss.getQueueSize());
     put100Int();
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(100, dss.getQueueSize()));
 
     assertEquals(0, dss.getFlushes());
 
     DiskRegion diskRegion = ((LocalRegion) region).getDiskRegion();
     diskRegion.getDiskStore().flush();
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(0, dss.getQueueSize()));
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(100, dss.getFlushes()));
     put100Int();
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(100, dss.getQueueSize()));
     diskRegion.getDiskStore().flush();
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(0, dss.getQueueSize()));
-    Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
+    await()
         .timeout(10, TimeUnit.SECONDS).untilAsserted(() -> assertEquals(200, dss.getFlushes()));
     closeDown();
   }
@@ -1623,7 +1623,7 @@ public class OplogJUnitTest extends DiskRegionTestingBase {
       region.put("key3", val);
       putsCompleted.countDown();
       cache.getLogger().info("waiting for compaction");
-      Awaitility.await().atMost(9, TimeUnit.SECONDS).until(() -> testObserver.hasCompacted());
+      await().until(() -> testObserver.hasCompacted());
       assertFalse(testObserver.exceptionOccured());
 
       region.close();
@@ -1752,7 +1752,7 @@ public class OplogJUnitTest extends DiskRegionTestingBase {
 
   private void verifyOplogHeader(File dir, String... oplogTypes) throws IOException {
 
-    Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       List<String> types = new ArrayList<>(Arrays.asList(oplogTypes));
       Arrays.stream(dir.listFiles()).map(File::getName).map(f -> f.substring(f.indexOf(".")))
           .forEach(types::remove);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/BlockingHARegionQueueJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/BlockingHARegionQueueJUnitTest.java
index 03713b7..1f52693 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/BlockingHARegionQueueJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/BlockingHARegionQueueJUnitTest.java
@@ -14,11 +14,10 @@
  */
 package org.apache.geode.internal.cache.ha;
 
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertThat;
 
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.junit.Test;
@@ -68,12 +67,12 @@ public class BlockingHARegionQueueJUnitTest extends HARegionQueueJUnitTest {
     });
     thread.start();
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> threadStarted.get());
+    await().until(() -> threadStarted.get());
 
     Conflatable conf = (Conflatable) hrq.take();
     assertThat(conf, notNullValue());
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> !thread.isAlive());
+    await().until(() -> !thread.isAlive());
   }
 
   /**
@@ -104,14 +103,14 @@ public class BlockingHARegionQueueJUnitTest extends HARegionQueueJUnitTest {
     });
     thread.start();
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> threadStarted.get());
+    await().until(() -> threadStarted.get());
 
     Conflatable conf = (Conflatable) hrq.peek();
     assertThat(conf, notNullValue());
 
     hrq.remove();
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> !thread.isAlive());
+    await().until(() -> !thread.isAlive());
   }
 
   /**
@@ -146,8 +145,8 @@ public class BlockingHARegionQueueJUnitTest extends HARegionQueueJUnitTest {
     });
     thread.start();
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> threadStarted.get());
+    await().until(() -> threadStarted.get());
 
-    await().atMost(1, TimeUnit.MINUTES).until(() -> !thread.isAlive());
+    await().until(() -> !thread.isAlive());
   }
 }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARQAddOperationJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARQAddOperationJUnitTest.java
index 7cd0f15..d368e17 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARQAddOperationJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARQAddOperationJUnitTest.java
@@ -15,6 +15,7 @@
 package org.apache.geode.internal.cache.ha;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -26,10 +27,8 @@ import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.logging.log4j.Logger;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -294,7 +293,7 @@ public class HARQAddOperationJUnitTest {
       // After the expiry of the data , AvaialbleIds size should be 0,
       // entry
       // removed from Region, LastDispatchedWrapperSet should have size 0.
-      Awaitility.await().atMost(60, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(0, regionqueue.getRegion().entrySet(false).size()));
       assertEquals(0, regionqueue.getAvailableIds().size());
       assertNull(regionqueue.getCurrentCounterSet(id1));
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
index 0270177..29def33 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueIntegrationTest.java
@@ -15,8 +15,8 @@
 package org.apache.geode.internal.cache.ha;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -550,7 +550,7 @@ public class HARegionQueueIntegrationTest {
     }
 
     try {
-      await().atMost(10, TimeUnit.SECONDS).until(() -> haEventWrapper.getReferenceCount() == 0);
+      await().until(() -> haEventWrapper.getReferenceCount() == 0);
     } catch (ConditionTimeoutException conditionTimeoutException) {
       throw new TestException(
           "Expected HAEventWrapper reference count to be decremented to 0 by either the queue removal or destroy queue logic, but the actual reference count was "
@@ -616,7 +616,7 @@ public class HARegionQueueIntegrationTest {
     }
 
     try {
-      await().atMost(10, TimeUnit.SECONDS).until(() -> haEventWrapper.getReferenceCount() == 0);
+      await().until(() -> haEventWrapper.getReferenceCount() == 0);
     } catch (ConditionTimeoutException conditionTimeoutException) {
       throw new TestException(
           "Expected HAEventWrapper reference count to be decremented to 0 by either the message dispatcher or destroy queue logic, but the actual reference count was "
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueJUnitTest.java
index fc174a3..946a97d 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/ha/HARegionQueueJUnitTest.java
@@ -17,6 +17,7 @@ package org.apache.geode.internal.cache.ha;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.GEODE_PREFIX;
 import static org.apache.geode.internal.lang.SystemPropertyHelper.HA_REGION_QUEUE_EXPIRY_TIME_PROPERTY;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.CoreMatchers.notNullValue;
@@ -47,10 +48,8 @@ import java.util.concurrent.CyclicBarrier;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.awaitility.Awaitility;
 import org.awaitility.core.ThrowingRunnable;
 import org.junit.After;
 import org.junit.Assert;
@@ -1381,7 +1380,7 @@ public class HARegionQueueJUnitTest {
     int updatedMessageSyncInterval = 10;
     cache.setMessageSyncInterval(updatedMessageSyncInterval);
 
-    Awaitility.await().atMost(1, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> assertThat("messageSyncInterval not updated.",
             HARegionQueue.getMessageSyncInterval(), is(updatedMessageSyncInterval)));
   }
@@ -1785,7 +1784,7 @@ public class HARegionQueueJUnitTest {
    */
   private void waitAtLeast(final int minimumElapsedTime, final long start,
       final ThrowingRunnable runnable) {
-    Awaitility.await().atMost(1, TimeUnit.MINUTES).untilAsserted(runnable);
+    await().untilAsserted(runnable);
     long elapsed = System.currentTimeMillis() - start;
     assertThat(elapsed >= minimumElapsedTime, is(true));
   }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifierIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifierIntegrationTest.java
index d65dd6e..b0e149d 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifierIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/CacheClientNotifierIntegrationTest.java
@@ -15,8 +15,7 @@
 
 package org.apache.geode.internal.cache.tier.sockets;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
@@ -151,7 +150,7 @@ public class CacheClientNotifierIntegrationTest {
     }
 
     // Verify that we do not hang in peek() for the second proxy due to the wrapper
-    await().atMost(30, SECONDS).until(() -> {
+    await().until(() -> {
       if (cacheClientProxyTwo.getHARegionQueue().peek() != null) {
         cacheClientProxyTwo.getHARegionQueue().remove();
         return true;
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorIntegrationTest.java
index 8df649d..48829e9 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorIntegrationTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
@@ -24,7 +25,6 @@ import static org.mockito.Mockito.mock;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 import org.junit.contrib.java.lang.system.RestoreSystemProperties;
@@ -192,8 +192,8 @@ public class ClientHealthMonitorIntegrationTest {
             + statistics.getInt("currentClientConnections"));
     this.system.getLogWriter().info("acquired connection " + connection1);
 
-    Awaitility.await().pollDelay(0, TimeUnit.MILLISECONDS).pollDelay(10, TimeUnit.MILLISECONDS)
-        .atMost(1, TimeUnit.SECONDS).until(() -> statistics.getInt("currentClients") == 1);
+    await().pollDelay(0, TimeUnit.MILLISECONDS)
+        .until(() -> statistics.getInt("currentClients") == 1);
 
     assertEquals(1, statistics.getInt("currentClients"));
     assertEquals(1, statistics.getInt("currentClientConnections"));
@@ -202,8 +202,8 @@ public class ClientHealthMonitorIntegrationTest {
     srp.putOnForTestsOnly(connection1, "key-1", "value-1", new EventID(new byte[] {1}, 1, 1), null);
     this.system.getLogWriter().info("did put 1");
 
-    Awaitility.await().pollDelay(0, TimeUnit.MILLISECONDS).pollDelay(100, TimeUnit.MILLISECONDS)
-        .atMost(5, TimeUnit.SECONDS).until(() -> statistics.getInt("currentClients") == 0);
+    await().pollDelay(0, TimeUnit.MILLISECONDS)
+        .until(() -> statistics.getInt("currentClients") == 0);
 
     this.system.getLogWriter().info("currentClients=" + statistics.getInt("currentClients")
         + " currentClientConnections=" + statistics.getInt("currentClientConnections"));
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventQueueValidationsJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventQueueValidationsJUnitTest.java
index 5e5e756..9eadeef 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventQueueValidationsJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/wan/asyncqueue/AsyncEventQueueValidationsJUnitTest.java
@@ -17,15 +17,14 @@ package org.apache.geode.internal.cache.wan.asyncqueue;
 import static junitparams.JUnitParamsRunner.$;
 import static org.apache.geode.distributed.ConfigurationProperties.CACHE_XML_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
 import junitparams.JUnitParamsRunner;
 import junitparams.Parameters;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -109,11 +108,11 @@ public class AsyncEventQueueValidationsJUnitTest {
     MyGatewayEventFilter filter = (MyGatewayEventFilter) filters.get(0);
 
     // Validate filter callbacks were invoked
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> filter.getBeforeEnqueueInvocations() == numPuts);
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> filter.getBeforeTransmitInvocations() == numPuts);
-    Awaitility.waitAtMost(60, TimeUnit.SECONDS)
+    await()
         .until(() -> filter.getAfterAcknowledgementInvocations() == numPuts);
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/DistributedSystemLogFileIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/DistributedSystemLogFileIntegrationTest.java
index e03b0f4..f2b274c 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/DistributedSystemLogFileIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/DistributedSystemLogFileIntegrationTest.java
@@ -21,9 +21,9 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.SECURITY_LOG_LEVEL;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -32,7 +32,6 @@ import java.nio.file.Files;
 import java.util.List;
 import java.util.Properties;
 import java.util.Scanner;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.logging.log4j.Level;
@@ -112,7 +111,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThat(logFile).exists();
       assertThat(securityLogFile).exists();
     });
@@ -200,7 +199,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     LogWriterLogger logWriter = (LogWriterLogger) system.getLogWriter();
     Logger geodeLogger = LogService.getLogger();
@@ -489,7 +488,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     LogWriterLogger logWriter = (LogWriterLogger) system.getLogWriter();
     Logger geodeLogger = LogService.getLogger();
@@ -636,7 +635,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     LogWriterLogger logWriter = (LogWriterLogger) system.getLogWriter();
     Logger geodeLogger = LogService.getLogger();
@@ -784,7 +783,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThat(logFile).exists();
       assertThat(securityLogFile).exists();
     });
@@ -837,7 +836,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertThat(logFile).exists();
       assertThat(securityLogFile).exists();
     });
@@ -945,7 +944,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(CONFIG);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     LogWriterLogger logWriter = (LogWriterLogger) system.getLogWriter();
     LogWriterLogger securityLogWriter = (LogWriterLogger) system.getSecurityLogWriter();
@@ -1036,7 +1035,7 @@ public class DistributedSystemLogFileIntegrationTest {
 
     system = (InternalDistributedSystem) DistributedSystem.connect(config);
 
-    await().atMost(5, TimeUnit.MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     LogWriterLogger logWriter = (LogWriterLogger) system.getLogWriter();
     LogWriterLogger securityLogWriter = (LogWriterLogger) system.getSecurityLogWriter();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/LocatorLogFileIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/LocatorLogFileIntegrationTest.java
index 5a88f1a..89ac2a0 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/LocatorLogFileIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/logging/LocatorLogFileIntegrationTest.java
@@ -14,13 +14,12 @@
  */
 package org.apache.geode.internal.logging;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -90,7 +89,7 @@ public class LocatorLogFileIntegrationTest {
 
     InternalDistributedSystem system = (InternalDistributedSystem) locator.getDistributedSystem();
 
-    await().atMost(5, MINUTES).untilAsserted(() -> assertThat(logFile).exists());
+    await().untilAsserted(() -> assertThat(logFile).exists());
 
     // assertThat logFile is not empty
     try (FileInputStream fis = new FileInputStream(logFile)) {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
index f545e7a..59a8355 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketIntegrationTest.java
@@ -20,8 +20,8 @@ import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_P
 import static org.apache.geode.distributed.ConfigurationProperties.CLUSTER_SSL_REQUIRE_AUTHENTICATION;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.internal.security.SecurableCommunicationChannel.CLUSTER;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -40,13 +40,11 @@ import java.net.SocketTimeoutException;
 import java.net.URL;
 import java.util.Properties;
 import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
 import javax.net.ssl.SSLContext;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -169,7 +167,7 @@ public class SSLSocketIntegrationTest {
     output.flush();
 
     // this is the real assertion of this test
-    await().atMost(30, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       return !serverThread.isAlive();
     });
     assertNull(serverException);
@@ -184,7 +182,7 @@ public class SSLSocketIntegrationTest {
     int serverPort = this.serverSocket.getLocalPort();
     Socket socket = new Socket();
     socket.connect(new InetSocketAddress(localHost, serverPort));
-    await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> assertFalse(serverThread.isAlive()));
+    await().untilAsserted(() -> assertFalse(serverThread.isAlive()));
     assertNotNull(serverException);
     throw serverException;
   }
@@ -227,7 +225,7 @@ public class SSLSocketIntegrationTest {
 
     int serverSocketPort = serverSocket.getLocalPort();
     try {
-      Awaitility.await("connect to server socket").atMost(30, TimeUnit.SECONDS).until(() -> {
+      await("connect to server socket").until(() -> {
         try {
           Socket clientSocket = socketCreator.connectForClient(
               SocketCreator.getLocalHost().getHostAddress(), serverSocketPort, 500);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SocketCloserIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SocketCloserIntegrationTest.java
index 0688555..b2db1b8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SocketCloserIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/net/SocketCloserIntegrationTest.java
@@ -14,6 +14,8 @@
  */
 package org.apache.geode.internal.net;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+
 import java.net.Socket;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -23,7 +25,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -94,7 +95,7 @@ public class SocketCloserIntegrationTest {
     countDownLatch.countDown();
     // now all the sockets should get closed; use a wait criteria
     // since a thread pool is doing to closes
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> {
+    await().until(() -> {
       boolean areAllClosed = true;
       for (Iterator<Socket> iterator = trackedSockets.iterator(); iterator.hasNext();) {
         Socket socket = iterator.next();
@@ -118,7 +119,7 @@ public class SocketCloserIntegrationTest {
     Socket s = createClosableSocket();
     s.close();
     this.socketCloser.asyncClose(s, "A", () -> runnableCalled.set(true));
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> !runnableCalled.get());
+    await().until(() -> !runnableCalled.get());
   }
 
   /**
@@ -131,7 +132,7 @@ public class SocketCloserIntegrationTest {
     final Socket closableSocket = createClosableSocket();
     this.socketCloser.close();
     this.socketCloser.asyncClose(closableSocket, "A", () -> runnableCalled.set(true));
-    Awaitility.await().atMost(5, TimeUnit.MINUTES)
+    await()
         .until(() -> runnableCalled.get() && closableSocket.isClosed());
   }
 }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapLRURecoveryRegressionTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapLRURecoveryRegressionTest.java
index 1f5a946..b8c77b5 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapLRURecoveryRegressionTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapLRURecoveryRegressionTest.java
@@ -16,12 +16,11 @@ package org.apache.geode.internal.offheap;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.fail;
 
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -61,7 +60,7 @@ public class OffHeapLRURecoveryRegressionTest {
     } finally {
       closeCache(gfc);
     }
-    Awaitility.await().atMost(60, TimeUnit.SECONDS).until(() -> {
+    await().until(() -> {
       return MemoryAllocatorImpl.getAllocator().getStats().getObjects() == 0;
     });
     System.setProperty("gemfire.disk.recoverValuesSync", "true");
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
index 62cc25f..c7698ae 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/offheap/OffHeapRegionBase.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.offheap;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -28,9 +29,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Test;
 
@@ -230,7 +229,7 @@ public abstract class OffHeapRegionBase {
       gfc.setCopyOnRead(true);
       final MemoryAllocator ma = gfc.getOffHeapStore();
       assertNotNull(ma);
-      Awaitility.await().atMost(60, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(0, ma.getUsedMemory()));
       Compressor compressor = null;
       if (compressed) {
@@ -444,7 +443,7 @@ public abstract class OffHeapRegionBase {
       assertTrue(ma.getUsedMemory() > 0);
       try {
         r.clear();
-        Awaitility.await().atMost(60, TimeUnit.SECONDS)
+        await()
             .untilAsserted(() -> assertEquals(0, ma.getUsedMemory()));
       } catch (UnsupportedOperationException ok) {
       }
@@ -457,7 +456,7 @@ public abstract class OffHeapRegionBase {
         r.put("key4", new Long(0xFF8000000L));
         assertEquals(4, r.size());
         r.close();
-        Awaitility.await().atMost(60, TimeUnit.SECONDS)
+        await()
             .untilAsserted(() -> assertEquals(0, ma.getUsedMemory()));
         // simple test of recovery
         r = gfc.createRegionFactory(rs).setOffHeap(true).create(rName);
@@ -482,7 +481,7 @@ public abstract class OffHeapRegionBase {
       }
 
       r.destroyRegion();
-      Awaitility.await().atMost(60, TimeUnit.SECONDS)
+      await()
           .untilAsserted(() -> assertEquals(0, ma.getUsedMemory()));
     } finally {
       if (r != null && !r.isDestroyed()) {
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
index 292b935..28879b7 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControlFileWatchdogIntegrationTest.java
@@ -14,10 +14,9 @@
  */
 package org.apache.geode.internal.process;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
@@ -67,7 +66,7 @@ public class ControlFileWatchdogIntegrationTest {
     // act: nothing
 
     // assert
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
+    await().untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
   }
 
   @Test
@@ -80,7 +79,7 @@ public class ControlFileWatchdogIntegrationTest {
     watchdog.start();
 
     // assert
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(watchdog.isAlive()).isTrue());
+    await().untilAsserted(() -> assertThat(watchdog.isAlive()).isTrue());
   }
 
   @Test
@@ -94,7 +93,7 @@ public class ControlFileWatchdogIntegrationTest {
     watchdog.stop();
 
     // assert
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
+    await().untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
   }
 
   @Test
@@ -143,7 +142,7 @@ public class ControlFileWatchdogIntegrationTest {
 
     // assert
     verify(requestHandler, timeout(TEN_MINUTES_MILLIS)).handleRequest();
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(file).doesNotExist());
+    await().untilAsserted(() -> assertThat(file).doesNotExist());
   }
 
   @Test
@@ -159,7 +158,7 @@ public class ControlFileWatchdogIntegrationTest {
 
     // assert
     verify(requestHandler, timeout(TEN_MINUTES_MILLIS)).handleRequest();
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(file).doesNotExist());
+    await().untilAsserted(() -> assertThat(file).doesNotExist());
   }
 
   @Test
@@ -203,8 +202,8 @@ public class ControlFileWatchdogIntegrationTest {
 
     // assert
     verify(requestHandler, timeout(TEN_MINUTES_MILLIS)).handleRequest();
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(file).doesNotExist());
+    await().untilAsserted(() -> assertThat(watchdog.isAlive()).isFalse());
+    await().untilAsserted(() -> assertThat(file).doesNotExist());
   }
 
   @Test
@@ -220,8 +219,8 @@ public class ControlFileWatchdogIntegrationTest {
 
     // assert
     verify(requestHandler, timeout(TEN_MINUTES_MILLIS)).handleRequest();
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(watchdog.isAlive()).isTrue());
-    await().atMost(10, MINUTES).untilAsserted(() -> assertThat(file).doesNotExist());
+    await().untilAsserted(() -> assertThat(watchdog.isAlive()).isTrue());
+    await().untilAsserted(() -> assertThat(file).doesNotExist());
   }
 
   @Test
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControllableProcessIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControllableProcessIntegrationTest.java
index f63e614..f79b6d8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControllableProcessIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/ControllableProcessIntegrationTest.java
@@ -14,10 +14,9 @@
  */
 package org.apache.geode.internal.process;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
 import static org.apache.geode.internal.process.ProcessUtils.identifyPid;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -187,7 +186,7 @@ public class ControllableProcessIntegrationTest {
 
     // assert
     assertThat(created).isTrue();
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(statusRequestFile).doesNotExist());
+    await().untilAsserted(() -> assertThat(statusRequestFile).doesNotExist());
     assertThat(statusFile).exists();
   }
 }
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/FileProcessControllerIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/FileProcessControllerIntegrationTest.java
index 1f7f40d..ee95727 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/FileProcessControllerIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/FileProcessControllerIntegrationTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.internal.process;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.catchThrowable;
@@ -28,8 +29,6 @@ import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
-import org.awaitility.core.ConditionFactory;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Rule;
@@ -224,10 +223,6 @@ public class FileProcessControllerIntegrationTest {
     await().untilAsserted(() -> assertThat(statusRequestFile).exists());
   }
 
-  private ConditionFactory await() {
-    return Awaitility.await().atMost(2, MINUTES);
-  }
-
   private static String generateStatusJson() {
     Builder builder = new Builder();
     LocatorLauncher defaultLauncher = builder.build();
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/NativeProcessUtilsIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/NativeProcessUtilsIntegrationTest.java
index 9b11c55..e3c02a2 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/process/NativeProcessUtilsIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/process/NativeProcessUtilsIntegrationTest.java
@@ -14,9 +14,8 @@
  */
 package org.apache.geode.internal.process;
 
-import static java.util.concurrent.TimeUnit.MINUTES;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -63,7 +62,7 @@ public class NativeProcessUtilsIntegrationTest {
     assertThat(process.isAlive()).isTrue();
 
     pidFile = new File(directory, FILE_NAME);
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(pidFile).exists());
+    await().untilAsserted(() -> assertThat(pidFile).exists());
 
     pid = new PidFile(pidFile).readPid();
     assertThat(pid).isGreaterThan(0);
@@ -82,7 +81,7 @@ public class NativeProcessUtilsIntegrationTest {
     nativeProcessUtils.killProcess(pid);
 
     // assert
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(process.isAlive()).isFalse());
+    await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
   }
 
   @Test
@@ -97,7 +96,7 @@ public class NativeProcessUtilsIntegrationTest {
     process.destroyForcibly();
 
     // act/assert
-    await().atMost(2, MINUTES).untilAsserted(() -> assertThat(process.isAlive()).isFalse());
+    await().untilAsserted(() -> assertThat(process.isAlive()).isFalse());
     assertThat(nativeProcessUtils.isProcessAlive(pid)).isFalse();
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/StatSamplerIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/StatSamplerIntegrationTest.java
index 46ed874..4bdb05f 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/StatSamplerIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/StatSamplerIntegrationTest.java
@@ -14,8 +14,7 @@
  */
 package org.apache.geode.internal.statistics;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -134,7 +133,7 @@ public class StatSamplerIntegrationTest {
     st1_1.setDoubleSupplier("sampled_double", () -> 7.0);
     getOrCreateExpectedValueMap(st1_1).put("sampled_double", 7.0);
 
-    await("awaiting StatSampler readiness").atMost(30, SECONDS)
+    await("awaiting StatSampler readiness")
         .until(() -> hasSamplerStatsInstances(factory));
 
     Statistics[] samplerStatsInstances = factory.findStatisticsByTextId("statSampler");
@@ -324,7 +323,7 @@ public class StatSamplerIntegrationTest {
 
   private void waitForStatSamplerToRun(final Statistics samplerStats, final int timesToRun) {
     final int startSampleCount = samplerStats.getInt("sampleCount");
-    await("waiting for the StatSampler to run").atMost(30, SECONDS)
+    await("waiting for the StatSampler to run")
         .until(() -> samplerStats.getInt("sampleCount") >= startSampleCount + timesToRun);
   }
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/ValueMonitorIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/ValueMonitorIntegrationTest.java
index 489cd53..54cfc8a 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/ValueMonitorIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/internal/statistics/ValueMonitorIntegrationTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.statistics;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -24,9 +25,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -202,7 +201,7 @@ public class ValueMonitorIntegrationTest {
 
     long timeStamp = NanoTimer.getTime();
     sampleCollector.sample(timeStamp);
-    Awaitility.await().atMost(2, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> notifications.size() > 0);
     assertThat(notifications.size()).isEqualTo(1);
 
@@ -215,7 +214,7 @@ public class ValueMonitorIntegrationTest {
     st1_1.incLong("long_counter_3", 3);
     timeStamp += NanoTimer.millisToNanos(1000);
     sampleCollector.sample(timeStamp);
-    Awaitility.await().atMost(2, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> notifications.size() > 0);
     assertThat(notifications.size()).isEqualTo(1);
     notification = notifications.remove(0);
@@ -231,7 +230,7 @@ public class ValueMonitorIntegrationTest {
     // validate no notification occurs when no stats are updated
     timeStamp += NanoTimer.millisToNanos(1000);
     sampleCollector.sample(timeStamp);
-    Awaitility.await().atMost(2, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> notifications.size() == 0);
     assertThat(notifications.isEmpty()).isTrue();
 
@@ -241,7 +240,7 @@ public class ValueMonitorIntegrationTest {
     st1_2.incLong("long_counter_3", 2);
     timeStamp += NanoTimer.millisToNanos(1000);
     sampleCollector.sample(timeStamp);
-    Awaitility.await().atMost(2, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> notifications.size() == 0);
     assertThat(notifications.isEmpty()).isTrue();
 
@@ -251,7 +250,7 @@ public class ValueMonitorIntegrationTest {
     assertThat(sampleCollector.currentHandlersForTesting().size()).isEqualTo(2);
     timeStamp += NanoTimer.millisToNanos(1000);
     sampleCollector.sample(timeStamp);
-    Awaitility.await().atMost(2, TimeUnit.SECONDS).pollInterval(10, TimeUnit.MILLISECONDS)
+    await()
         .until(() -> notifications.size() > 0);
     assertThat(notifications.size()).isEqualTo(1);
     notification = notifications.remove(0);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/management/FederatingManagerIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/management/FederatingManagerIntegrationTest.java
index 32781aa..f5cbaad 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/management/FederatingManagerIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/management/FederatingManagerIntegrationTest.java
@@ -15,14 +15,13 @@
 
 package org.apache.geode.management;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.InetAddress;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -62,7 +61,7 @@ public class FederatingManagerIntegrationTest {
       manager.addMember(mockMember);
     }
 
-    Awaitility.waitAtMost(1, TimeUnit.SECONDS)
+    await()
         .until(() -> serverRule.getCache().getAllRegions().size() > 1);
     assertThat(manager.getAndResetLatestException()).isNull();
   }
diff --git a/geode-core/src/test/java/org/apache/geode/SystemFailureJUnitTest.java b/geode-core/src/test/java/org/apache/geode/SystemFailureJUnitTest.java
index be35819..1a2a744 100644
--- a/geode-core/src/test/java/org/apache/geode/SystemFailureJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/SystemFailureJUnitTest.java
@@ -14,12 +14,12 @@
  */
 package org.apache.geode;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -51,8 +51,8 @@ public class SystemFailureJUnitTest {
     long start = System.nanoTime();
     Thread watchDog = SystemFailure.getWatchDogForTest();
     Thread proctor = SystemFailure.getProctorForTest();
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).until(() -> watchDog.isAlive());
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).until(() -> proctor.isAlive());
+    await().until(() -> watchDog.isAlive());
+    await().until(() -> proctor.isAlive());
     SystemFailure.stopThreads();
     long elapsed = System.nanoTime() - start;
     assertTrue("Waited too long to shutdown: " + elapsed,
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryMonitorTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryMonitorTest.java
index f77528c..881190a 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryMonitorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/QueryMonitorTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.cache.query.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.mockito.Mockito.mock;
@@ -22,7 +23,6 @@ import static org.mockito.Mockito.when;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.awaitility.Awaitility;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -72,12 +72,12 @@ public class QueryMonitorTest {
 
     for (DefaultQuery query : queries) {
       // make sure the isCancelled flag in Query is set correctly
-      Awaitility.await().until(() -> query.isCanceled());
+      await().until(() -> query.isCanceled());
     }
-    Awaitility.await().until(() -> monitor.getQueryMonitorThreadCount() == 0);
+    await().until(() -> monitor.getQueryMonitorThreadCount() == 0);
     // make sure all thread died
     for (Thread thread : threads) {
-      Awaitility.await().until(() -> !thread.isAlive());
+      await().until(() -> !thread.isAlive());
     }
   }
 
@@ -92,7 +92,7 @@ public class QueryMonitorTest {
   private Thread createQueryExecutionThread(int i) {
     Thread thread = new Thread(() -> {
       // make sure the threadlocal variable is updated
-      Awaitility.await()
+      await()
           .untilAsserted(() -> assertThatCode(() -> QueryMonitor.isQueryExecutionCanceled())
               .doesNotThrowAnyException());
     });
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterElderManagerTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterElderManagerTest.java
index fcb6551..8f9cad9 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterElderManagerTest.java
+++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/ClusterElderManagerTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.distributed.internal;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
@@ -27,11 +28,9 @@ import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Supplier;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -179,7 +178,7 @@ public class ClusterElderManagerTest {
 
     Callable<Void> updateMembershipView = () -> {
       // Wait for membership listener to be added
-      Awaitility.await().until(() -> membershipListener.get() != null);
+      await().until(() -> membershipListener.get() != null);
 
       currentMembers.set(Arrays.asList(member0));
       membershipListener.get().memberDeparted(clusterDistributionManager, member1, true);
@@ -278,7 +277,7 @@ public class ClusterElderManagerTest {
     EnumSet<Thread.State> waitingStates =
         EnumSet.of(Thread.State.WAITING, Thread.State.TIMED_WAITING);
     try {
-      Awaitility.await().atMost(1, TimeUnit.MINUTES)
+      await()
           .until(() -> waitingStates.contains(waitThread.getState()));
     } finally {
       waitThread.interrupt();
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/AfterCompletionTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/AfterCompletionTest.java
index 0e95b63..c5ebe01 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/AfterCompletionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/AfterCompletionTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.mockito.Mockito.atLeastOnce;
@@ -21,9 +22,6 @@ import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -118,13 +116,13 @@ public class AfterCompletionTest {
   private void startDoOp() {
     doOpThread = new Thread(() -> afterCompletion.doOp(txState, cancelCriterion));
     doOpThread.start();
-    Awaitility.await().atMost(5, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> verify(cancelCriterion, atLeastOnce()).checkCancelInProgress(null));
 
   }
 
   private void verifyDoOpFinished() {
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> !doOpThread.isAlive());
+    await().until(() -> !doOpThread.isAlive());
   }
 
 }
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/BeforeCompletionTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/BeforeCompletionTest.java
index 51b790e..d402a45 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/BeforeCompletionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/BeforeCompletionTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.mockito.Mockito.atLeastOnce;
@@ -21,9 +22,6 @@ import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -111,12 +109,12 @@ public class BeforeCompletionTest {
     thread.start();
     // give the thread a chance to get past the "finished" check by waiting until
     // checkCancelInProgress is called
-    Awaitility.await().atMost(5, TimeUnit.MINUTES)
+    await()
         .untilAsserted(() -> verify(cancelCriterion, atLeastOnce()).checkCancelInProgress(null));
 
     beforeCompletion.doOp(txState);
 
-    Awaitility.await().atMost(5, TimeUnit.MINUTES).until(() -> !(thread.isAlive()));
+    await().until(() -> !(thread.isAlive()));
   }
 
 }
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/EntryEventImplTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/EntryEventImplTest.java
index 039ae2f..aae1838 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/EntryEventImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/EntryEventImplTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -28,7 +29,6 @@ import static org.mockito.Mockito.when;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -538,7 +538,7 @@ public class EntryEventImplTest {
       e.release();
     });
     doRelease.start(); // release thread will be stuck until releaseCountDown changes
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.isWaitingOnRelease()));
     assertEquals(true, e.offHeapOk);
@@ -575,7 +575,7 @@ public class EntryEventImplTest {
     });
     doSOVgetDeserializedValue.start();
 
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true,
             e.isAboutToCallGetNewValue() && e.isAboutToCallGetOldValue()
@@ -611,7 +611,7 @@ public class EntryEventImplTest {
     doRelease.join();
     assertEquals(false, e.offHeapOk);
     // which should allow getNewValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfGetNewValue()));
     doGetNewValue.join();
@@ -620,7 +620,7 @@ public class EntryEventImplTest {
       fail("unexpected success of getNewValue. It returned " + e.getCachedNewValue());
     }
     // which should allow getOldValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfGetOldValue()));
     doGetOldValue.join();
@@ -628,7 +628,7 @@ public class EntryEventImplTest {
       fail("unexpected success of getOldValue. It returned " + e.getCachedOldValue());
     }
     // which should allow doSNVgetSerializedValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfSerializedNew()));
     doSNVgetSerializedValue.join();
@@ -637,7 +637,7 @@ public class EntryEventImplTest {
           + e.getTestCachedSerializedNew());
     }
     // which should allow doSNVgetDeserializedValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfDeserializedNew()));
     doSNVgetDeserializedValue.join();
@@ -646,7 +646,7 @@ public class EntryEventImplTest {
           + e.getCachedDeserializedNew());
     }
     // which should allow doSOVgetSerializedValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfSerializedOld()));
     doSOVgetSerializedValue.join();
@@ -655,7 +655,7 @@ public class EntryEventImplTest {
           + e.getCachedSerializedOld());
     }
     // which should allow doSOVgetDeserializedValue to complete
-    Awaitility.await().pollInterval(1, TimeUnit.MILLISECONDS).pollDelay(1, TimeUnit.MILLISECONDS)
+    await()
         .timeout(15, TimeUnit.SECONDS)
         .untilAsserted(() -> assertEquals(true, e.hasFinishedCallOfDeserializedOld()));
     doSOVgetDeserializedValue.join();
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
index dbb29d1..b87ee8d 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/GemFireCacheImplTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
@@ -30,7 +31,6 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -173,8 +173,7 @@ public class GemFireCacheImplTest {
           }
         });
       }
-      Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-          .pollDelay(10, TimeUnit.MILLISECONDS).timeout(90, TimeUnit.SECONDS)
+      await().timeout(90, TimeUnit.SECONDS)
           .untilAsserted(() -> assertEquals(MAX_THREADS, executor.getCompletedTaskCount()));
     } finally {
       gfc.close();
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluatorTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluatorTest.java
index f040b9f..c06cb67 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluatorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/PartitionedRegionQueryEvaluatorTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
-import static org.awaitility.Awaitility.await;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -31,7 +31,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Queue;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -212,7 +211,7 @@ public class PartitionedRegionQueryEvaluatorTest {
         null, new LinkedResultSet(), bucketSet);
     RegionAdvisor regionAdvisor = mock(RegionAdvisor.class);
     when(regionAdvisor.adviseDataStore()).thenReturn(bucketSet);
-    await().atMost(10, TimeUnit.SECONDS)
+    await()
         .until(() -> !(bucketList.equals(prqe.getAllNodes(regionAdvisor))));
   }
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/SearchLoadAndWriteProcessorTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/SearchLoadAndWriteProcessorTest.java
index a5a92bc..fdbf3ea 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/SearchLoadAndWriteProcessorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/SearchLoadAndWriteProcessorTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.mock;
@@ -24,9 +25,7 @@ import static org.mockito.Mockito.when;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Test;
 
 import org.apache.geode.CancelCriterion;
@@ -122,8 +121,7 @@ public class SearchLoadAndWriteProcessorTest {
 
     Thread t1 = new Thread(new Runnable() {
       public void run() {
-        Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-            .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+        await()
             .until(() -> processor.getSelectedNode() != null);
         departedMember = processor.getSelectedNode();
         // Simulate member departed event
@@ -134,8 +132,7 @@ public class SearchLoadAndWriteProcessorTest {
 
     Thread t2 = new Thread(new Runnable() {
       public void run() {
-        Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-            .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+        await()
             .until(() -> departedMember != null && processor.getSelectedNode() != null
                 && departedMember != processor.getSelectedNode());
 
@@ -148,8 +145,7 @@ public class SearchLoadAndWriteProcessorTest {
 
     Thread t3 = new Thread(new Runnable() {
       public void run() {
-        Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-            .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+        await()
             .until(() -> departedMember != null && processor.getSelectedNode() != null
                 && departedMember != processor.getSelectedNode());
         // Handle search result from a new member
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/SingleThreadJTAExecutorTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/SingleThreadJTAExecutorTest.java
index a026730..ea54de8 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/SingleThreadJTAExecutorTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/SingleThreadJTAExecutorTest.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.doThrow;
@@ -24,9 +25,7 @@ import static org.mockito.Mockito.verify;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.InOrder;
@@ -58,9 +57,9 @@ public class SingleThreadJTAExecutorTest {
     singleThreadJTAExecutor.executeBeforeCompletion(txState, executor, cancelCriterion);
 
     verify(beforeCompletion, times(1)).execute(eq(cancelCriterion));
-    Awaitility.await().atMost(30, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> inOrder.verify(beforeCompletion, times(1)).doOp(eq(txState)));
-    Awaitility.await().atMost(30, TimeUnit.SECONDS).untilAsserted(
+    await().untilAsserted(
         () -> inOrder.verify(afterCompletion, times(1)).doOp(eq(txState), eq(cancelCriterion)));
   }
 
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/TXManagerImplTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/TXManagerImplTest.java
index 3669400..9b56dfd 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/TXManagerImplTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/TXManagerImplTest.java
@@ -15,6 +15,7 @@
 
 package org.apache.geode.internal.cache;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -40,7 +41,6 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.invocation.InvocationOnMock;
@@ -241,8 +241,7 @@ public class TXManagerImplTest {
 
         latch.countDown();
 
-        Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-            .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+        await()
             .until(() -> tx1.getLock().hasQueuedThreads());
 
         txMgr.removeHostedTXState(txid);
@@ -325,8 +324,7 @@ public class TXManagerImplTest {
 
         TXStateProxy existingTx = masqueradeToRollback();
         latch.countDown();
-        Awaitility.await().pollInterval(10, TimeUnit.MILLISECONDS)
-            .pollDelay(10, TimeUnit.MILLISECONDS).atMost(30, TimeUnit.SECONDS)
+        await()
             .until(() -> tx1.getLock().hasQueuedThreads());
 
         rollbackTransaction(existingTx);
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/eviction/LRUListWithAsyncSortingTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/eviction/LRUListWithAsyncSortingTest.java
index cdf3bc8..d34b4ac 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/eviction/LRUListWithAsyncSortingTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/eviction/LRUListWithAsyncSortingTest.java
@@ -14,8 +14,8 @@
  */
 package org.apache.geode.internal.cache.eviction;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -27,7 +27,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
 import org.junit.Before;
@@ -178,7 +177,7 @@ public class LRUListWithAsyncSortingTest {
     list.incrementRecentlyUsed();
 
     // unsetRecentlyUsed() is called once during scan
-    await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> verify(recentlyUsedNode, times(1)).unsetRecentlyUsed());
     realExecutor.shutdown();
   }
@@ -197,7 +196,7 @@ public class LRUListWithAsyncSortingTest {
     list.incrementRecentlyUsed();
 
     // unsetRecentlyUsed() is called once during scan
-    await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> verify(recentlyUsedNode, times(1)).unsetRecentlyUsed());
     realExecutor.shutdown();
   }
@@ -227,7 +226,7 @@ public class LRUListWithAsyncSortingTest {
     list.incrementRecentlyUsed();
 
     // unsetRecentlyUsed() is called once during scan
-    await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> verify(recentlyUsedNode, times(1)).unsetRecentlyUsed());
     assertThat(list.tail.previous()).isEqualTo(recentlyUsedNode);
     realExecutor.shutdown();
diff --git a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorJUnitTest.java b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorJUnitTest.java
index d681901..3229a18 100755
--- a/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/cache/tier/sockets/ClientHealthMonitorJUnitTest.java
@@ -14,13 +14,11 @@
  */
 package org.apache.geode.internal.cache.tier.sockets;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-import java.util.concurrent.TimeUnit;
-
-import org.awaitility.Awaitility;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -60,7 +58,7 @@ public class ClientHealthMonitorJUnitTest {
     clientHealthMonitor.receivedPing(mockId);
     clientHealthMonitor.testUseCustomHeartbeatCheck((a, b, c) -> true); // Fail all heartbeats
 
-    Awaitility.await().atMost(10, TimeUnit.SECONDS)
+    await()
         .untilAsserted(() -> verify(mockConnection).handleTermination(true));
   }
 
@@ -85,7 +83,7 @@ public class ClientHealthMonitorJUnitTest {
     HeartbeatOverride heartbeater = new HeartbeatOverride();
     clientHealthMonitor.testUseCustomHeartbeatCheck(heartbeater);
 
-    Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> heartbeater.numHeartbeats >= 5);
+    await().until(() -> heartbeater.numHeartbeats >= 5);
 
     // Check that we never tried to terminate the connection
     verify(mockConnection, times(0)).handleTermination(true);
diff --git a/geode-core/src/test/java/org/apache/geode/internal/process/lang/AvailablePidTest.java b/geode-core/src/test/java/org/apache/geode/internal/process/lang/AvailablePidTest.java
index 63f2f7a..48bdcfa 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/process/lang/AvailablePidTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/process/lang/AvailablePidTest.java
@@ -19,9 +19,9 @@ import static org.apache.geode.internal.process.ProcessUtils.identifyPid;
 import static org.apache.geode.internal.process.ProcessUtils.isProcessAlive;
 import static org.apache.geode.internal.process.lang.AvailablePid.DEFAULT_LOWER_BOUND;
 import static org.apache.geode.internal.process.lang.AvailablePid.DEFAULT_UPPER_BOUND;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.spy;
@@ -128,14 +128,14 @@ public class AvailablePidTest {
   public void randomLowerBoundIsInclusive() throws Exception {
     availablePid = new AvailablePid(new AvailablePid.Bounds(1, 3));
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(availablePid.random()).isEqualTo(1));
+    await().untilAsserted(() -> assertThat(availablePid.random()).isEqualTo(1));
   }
 
   @Test
   public void randomUpperBoundIsInclusive() throws Exception {
     availablePid = new AvailablePid(new AvailablePid.Bounds(1, 3));
 
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(availablePid.random()).isEqualTo(3));
+    await().untilAsserted(() -> assertThat(availablePid.random()).isEqualTo(3));
   }
 
   @Test
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/beans/CacheServerBridgeClientMembershipRegressionTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/beans/CacheServerBridgeClientMembershipRegressionTest.java
index 583806b..5a5c29d 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/beans/CacheServerBridgeClientMembershipRegressionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/beans/CacheServerBridgeClientMembershipRegressionTest.java
@@ -15,9 +15,8 @@
 package org.apache.geode.management.internal.beans;
 
 import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -99,10 +98,10 @@ public class CacheServerBridgeClientMembershipRegressionTest {
       }
     });
 
-    await().atMost(10, SECONDS).until(() -> before.get());
+    await().until(() -> before.get());
 
     // if deadlocked, then this line will throw ConditionTimeoutException
-    await().atMost(10, SECONDS).untilAsserted(() -> assertThat(after.get()).isTrue());
+    await().untilAsserted(() -> assertThat(after.get()).isTrue());
   }
 
   private void givenCacheFactoryIsSynchronized() {
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunctionTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunctionTest.java
index 3a7181a..82d1ef8 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunctionTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/functions/GetRegionsFunctionTest.java
@@ -15,12 +15,11 @@
 
 package org.apache.geode.management.internal.cli.functions;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.awaitility.core.ConditionTimeoutException;
@@ -60,7 +59,7 @@ public class GetRegionsFunctionTest {
         lockAquired.set(true);
         lockingThreadState = GetRegionsFunctionTest.STATE.BLOCKING;
         try {
-          await().atMost(10, TimeUnit.SECONDS).untilTrue(functionExecuted);
+          await().untilTrue(functionExecuted);
         } catch (ConditionTimeoutException e) {
           e.printStackTrace();
           lockingThreadState = GetRegionsFunctionTest.STATE.FINISHED;
@@ -69,7 +68,7 @@ public class GetRegionsFunctionTest {
     }).start();
 
     // wait till the blocking thread aquired the lock on CacheFactory
-    await().atMost(1, TimeUnit.SECONDS).untilTrue(lockAquired);
+    await().untilTrue(lockAquired);
     when(functionContext.getCache()).thenReturn(mock(Cache.class));
     when(functionContext.getResultSender()).thenReturn(mock(ResultSender.class));
 
diff --git a/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTestBase.java b/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTestBase.java
index fce3528..3bff442 100755
--- a/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTestBase.java
+++ b/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgrade2DUnitTestBase.java
@@ -14,6 +14,7 @@
  */
 package org.apache.geode.internal.cache.rollingupgrade;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.Assert.assertEquals;
 import static org.apache.geode.test.dunit.Assert.assertFalse;
 import static org.apache.geode.test.dunit.Assert.assertTrue;
@@ -36,10 +37,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.FileUtils;
-import org.awaitility.Awaitility;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
@@ -255,7 +254,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -274,7 +273,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -315,7 +314,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -333,7 +332,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -375,7 +374,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -393,7 +392,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
       // Locators before 1.4 handled configuration asynchronously.
       // We must wait for configuration configuration to be ready, or confirm that it is disabled.
       oldServerAndLocator.invoke(
-          () -> Awaitility.await().atMost(65, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
+          () -> await()
               .untilAsserted(() -> assertTrue(
                   !InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()
                       || InternalLocator.getLocator().isSharedConfigurationRunning())));
@@ -1201,7 +1200,7 @@ public abstract class RollingUpgrade2DUnitTestBase extends JUnit4DistributedTest
 
   String getHARegionName() {
     InternalCache internalCache = (InternalCache) cache;
-    Awaitility.await().atMost(15, TimeUnit.SECONDS).untilAsserted(() -> {
+    await().untilAsserted(() -> {
       assertEquals(1, internalCache.getCacheServers().size());
       CacheServerImpl bs = (CacheServerImpl) (internalCache.getCacheServers().iterator().next());
       assertEquals(1, bs.getAcceptor().getCacheClientNotifier().getClientProxies().size());
diff --git a/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeClients.java b/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeClients.java
index 786ac0a..cf3c1d5 100644
--- a/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeClients.java
+++ b/geode-core/src/upgradeTest/java/org/apache/geode/internal/cache/rollingupgrade/RollingUpgradeClients.java
@@ -14,11 +14,9 @@
  */
 package org.apache.geode.internal.cache.rollingupgrade;
 
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertTrue;
 
-import java.util.concurrent.TimeUnit;
... 5189 lines suppressed ...


Mime
View raw message