class ServerLauncher extends AbstractLauncher<String> {

  Cache createCache(Properties gemfireProperties) {
    Iterable<ServerLauncherCacheProvider> loader = getServerLauncherCacheProviders();
    for (ServerLauncherCacheProvider provider : loader) {
      Cache cache = provider.createCache(gemfireProperties, this);
      if (cache != null) {
        return cache;
      }
    }

    return DEFAULT_CACHE_PROVIDER.createCache(gemfireProperties, this);
  }

  private  ServerLauncher(final Builder builder);

}