@@ -0,0 +1,1373 @@
+package info.noconfuse.modules.cache.support;%0A%0Aimport info.noconfuse.modules.cache.MemcachedCache;%0Aimport net.rubyeye.xmemcached.MemcachedClient;%0Aimport org.springframework.cache.Cache;%0Aimport org.springframework.cache.support.AbstractCacheManager;%0Aimport org.springframework.util.Assert;%0A%0Aimport java.util.Collection;%0Aimport java.util.LinkedHashSet;%0Aimport java.util.Set;%0A%0A/**%0A * Simple cache manager working against a Memcached service.%0A *%0A * @author Zheng Zhipeng%0A */%0Apublic class MemcachedCacheManager extends AbstractCacheManager %7B%0A%0A    private Set%3CString%3E cacheNames;%0A%0A    private MemcachedClient memcachedClient;%0A%0A    @Override%0A    protected Collection%3C? extends Cache%3E loadCaches() %7B%0A        Assert.notNull(cacheNames, %22cacheNames must be assigned%22);%0A        Assert.notEmpty(cacheNames, %22cacheNames must be assigned%22);%0A        Assert.notNull(memcachedClient, %22memcachedClient must be assigned%22);%0A%0A        Set%3CMemcachedCache%3E cacheSet = new LinkedHashSet%3C%3E(cacheNames.size());%0A        for (String cacheName : cacheNames) %7B%0A            cacheSet.add(new MemcachedCache(cacheName, memcachedClient));%0A        %7D%0A        return cacheSet;%0A    %7D%0A%0A    public void setCacheNames(Set%3CString%3E cacheNames) %7B%0A        this.cacheNames = cacheNames;%0A    %7D%0A%0A    public void setMemcachedClient(MemcachedClient memcachedClient) %7B%0A        this.memcachedClient = memcachedClient;%0A    %7D%0A%7D%0A

Add MemcachedCacheManager implementation to caching module