package org.podcastpedia.web.caching; import org.apache.log4j.Logger; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Caching; public class CacheUpdateServiceImpl implements CacheUpdateService { protected static Logger LOG = Logger.getLogger(CacheUpdateServiceImpl.class); @CacheEvict(value="referenceData", allEntries=true) public void clearReferenceDataCache() { LOG.warn("Reference data cache was flushed"); } @CacheEvict(value="newestAndRecommendedPodcasts", allEntries=true) public void clearNewestAndRecommendedPodcastsCache() { LOG.warn("Start page podcasts (newest, recommended, best rated) cache was flushed"); } /** * Through usage of annotations all of the managed caches will be cleared. */ @Caching(evict = { @CacheEvict(value="referenceData", allEntries=true), @CacheEvict(value="podcasts", allEntries=true), @CacheEvict(value="searchResults", allEntries=true), @CacheEvict(value="newestAndRecommendedPodcasts", allEntries=true), @CacheEvict(value="randomAndTopRatedPodcasts", allEntries=true) }) public void clearAllCaches() { LOG.warn("All caches have been completely cleared"); } @CacheEvict(value="searchResults", allEntries=true) public void clearSearchResults() { LOG.warn("Search results cache is completely flushed"); } }