public String toString() {
        Collection<Cache<?, ?>> values = caches.values();
        StringBuilder sb = new StringBuilder(getClass().getSimpleName())
                .append(" with ")
                .append(caches.size())
                .append(" cache(s)): [");
        int i = 0;
        for (Cache cache : values) {
            if (i > 0) {
                sb.append(", ");
            }
            sb.append(cache.toString());
            i++;
        }
        sb.append("]");
        return sb.toString();
    }
Cleanup method that first {@link LifecycleUtils#destroy destroys} all of it's managed caches and then
{@link java.util.Map#clear clears} out the internally referenced cache map.

@throws Exception if any of the managed caches can't destroy properly.
cache/src/main/java/org/apache/shiro/cache/AbstractCacheManager.java