public static void createClientCache(Pool poolAttr, String regionName, Properties dsProperties)
     throws Exception {
   ClientCacheFactory ccf = new ClientCacheFactory(dsProperties);
   if (poolAttr != null) {
     ccf.setPoolFreeConnectionTimeout(poolAttr.getFreeConnectionTimeout())
         .setPoolLoadConditioningInterval(poolAttr.getLoadConditioningInterval())
         .setPoolSocketBufferSize(poolAttr.getSocketBufferSize())
         .setPoolMinConnections(poolAttr.getMinConnections())
         .setPoolMaxConnections(poolAttr.getMaxConnections())
         .setPoolIdleTimeout(poolAttr.getIdleTimeout())
         .setPoolPingInterval(poolAttr.getPingInterval())
         .setPoolStatisticInterval(poolAttr.getStatisticInterval())
         .setPoolRetryAttempts(poolAttr.getRetryAttempts())
         .setPoolThreadLocalConnections(poolAttr.getThreadLocalConnections())
         .setPoolReadTimeout(poolAttr.getReadTimeout())
         .setPoolSubscriptionEnabled(poolAttr.getSubscriptionEnabled())
         .setPoolPRSingleHopEnabled(poolAttr.getPRSingleHopEnabled())
         .setPoolSubscriptionRedundancy(poolAttr.getSubscriptionRedundancy())
         .setPoolSubscriptionMessageTrackingTimeout(
             poolAttr.getSubscriptionMessageTrackingTimeout())
         .setPoolSubscriptionAckInterval(poolAttr.getSubscriptionAckInterval())
         .setPoolServerGroup(poolAttr.getServerGroup())
         .setPoolMultiuserAuthentication(poolAttr.getMultiuserAuthentication());
     for (InetSocketAddress locator : poolAttr.getLocators()) {
       ccf.addPoolLocator(locator.getHostName(), locator.getPort());
     }
     for (InetSocketAddress server : poolAttr.getServers()) {
       ccf.addPoolServer(server.getHostName(), server.getPort());
     }
   }
   new CacheServerTestUtil("temp").createClientCache(dsProperties, ccf);
   ClientCache cc = (ClientCache) cache;
   cc.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY).create(regionName);
   pool = (PoolImpl) ((GemFireCacheImpl) cc).getDefaultPool();
 }