public static ClientConfiguration getInstance(URI uri, Configuration conf) {
    Class<? extends ClientConfiguration> clazz = conf.getClass("fs." + uri.getScheme()
        + ".client.configuration.impl",
        DefaultClientConfiguration.class, ClientConfiguration.class);
    ClientConfiguration clientConf = classCache.get(clazz);
    if (clientConf == null) {
      clientConf = (ClientConfiguration) ReflectionUtils.newInstance(clazz,
          null);
      classCache.put(clazz, clientConf);
    }
    return clientConf;
  }
public static ClientConfiguration getInstance ( URI uri , Configuration conf ) { Class < ? extends ClientConfiguration > clazz = conf . getClass ( "fs." + uri . getScheme ( ) + ".client.configuration.impl" , DefaultClientConfiguration . class , ClientConfiguration . class ) ; ClientConfiguration clientConf = classCache . get ( clazz ) ; if ( clientConf == null ) { clientConf = ( ClientConfiguration ) ReflectionUtils . newInstance ( clazz , null ) ; classCache . put ( clazz , clientConf ) ; } return clientConf ; }
Retrieves the implementation for {@link ClientConfiguration}. The
expectation is that either this will be specified in the default
configuration or it will be specified in the configuration of the client
via command line options and environment variables.

@param conf
the configuration for the client
@param uri
the URI for the filesystem
@return