class LazyCachePopulator extends AbstractCachePopulator<K, V> {

  public void pupulate() {
    final ExecutorService lazyExecuor = Executors.newSingleThreadExecutor(runnable -> ThreadUtils
        .createDaemonThread(runnable,
            "imcache:cachePopulator(name=" + cache.getName() + ",thread=0)"));
    lazyExecuor.execute(() -> {
      final List<CacheEntry<K, V>> entries = loadEntries();
      for (CacheEntry<K, V> cacheEntry : entries) {
        cache.put(cacheEntry.getKey(), cacheEntry.getValue());
      }
    });
    lazyExecuor.shutdown();
  }

  public  LazyCachePopulator(Cache<K, V> cache);

}