private void verifyGemFireSetup(final Peer manager) {
    manager.run(
        new SerializableRunnable(
            "Verifies the GemFire Cluster was properly configured and initialized!") {
          @Override
          public void run() {
            final ManagementService managementService =
                ManagementService.getExistingManagementService(getCache());

            WaitCriterion waitOnManagerCriterion =
                new WaitCriterion() {
                  @Override
                  public boolean done() {
                    ManagerMXBean managerBean = managementService.getManagerMXBean();
                    DistributedRegionMXBean usersRegionBean =
                        managementService.getDistributedRegionMXBean(
                            getRegionPath(USERS_REGION_NAME));

                    return !(managerBean == null || usersRegionBean == null);
                  }

                  @Override
                  public String description() {
                    return String.format(
                        "Probing for the GemFire Manager '%1$s' and '%2$s' Region MXBeans...",
                        manager.getName(), USERS_REGION_NAME);
                  }
                };

            DistributedTestCase.waitForCriterion(waitOnManagerCriterion, 30000, 2000, true);
          }
        });
  }
  protected void initializePeer(final Peer peer) {
    peer.run(
        new SerializableRunnable(
            String.format(
                "Initializes the '%1$s' with the '%2$s' Region having a CacheLoader.",
                GEMFIRE_SERVER_NAME, USERS_REGION_NAME)) {
          @Override
          public void run() {
            // create the GemFire Distributed System with custom distribution configuration
            // properties and settings
            getSystem(peer.getConfiguration());

            Cache cache = getCache();
            RegionFactory<String, User> regionFactory =
                cache.createRegionFactory(RegionShortcut.REPLICATE);

            regionFactory.setCacheLoader(new UserDataStoreCacheLoader());
            regionFactory.setInitialCapacity(51);
            regionFactory.setKeyConstraint(String.class);
            regionFactory.setLoadFactor(0.75f);
            regionFactory.setStatisticsEnabled(false);
            regionFactory.setValueConstraint(User.class);

            Region<String, User> users = regionFactory.create(USERS_REGION_NAME);

            assertNotNull(users);
            assertEquals("Users", users.getName());
            assertEquals("/Users", users.getFullPath());
            assertTrue(users.isEmpty());
            assertNull(users.put("jonbloom", new User("jonbloom")));
            assertFalse(users.isEmpty());
            assertEquals(1, users.size());
            assertEquals(new User("jonbloom"), users.get("jonbloom"));
          }
        });
  }