protected static Set<Cache> getRunningCaches(EmbeddedCacheManager cacheContainer) {
    Set<Cache> running = new HashSet<Cache>();
    if (cacheContainer == null || !cacheContainer.getStatus().allowInvocations()) return running;

    for (String cacheName : cacheContainer.getCacheNames()) {
      if (cacheContainer.isRunning(cacheName)) {
        Cache c = cacheContainer.getCache(cacheName);
        if (c.getStatus().allowInvocations()) running.add(c);
      }
    }

    if (cacheContainer.isDefaultRunning()) {
      Cache defaultCache = cacheContainer.getCache();
      if (defaultCache.getStatus().allowInvocations()) running.add(defaultCache);
    }

    return running;
  }