class KeyProviderCache {

  public KeyProvider get(final Configuration conf) {
    URI kpURI = createKeyProviderURI(conf);
    if (kpURI == null) {
      return null;
    }
    try {
      return cache.get(kpURI, new Callable<KeyProvider>() {
        @Override
        public KeyProvider call() throws Exception {
          return DFSUtil.createKeyProvider(conf);
        }
      });
    } catch (Exception e) {
      LOG.error("Could not create KeyProvider for DFSClient !!", e.getCause());
      return null;
    }
  }

  public  KeyProviderCache(long expiryMs);

}