/** * */ package wicket.webapp.service; import java.util.List; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import wicket.webapp.dao.ArticlesDAO; /** * @author victori * */ public class PersistanceServiceImpl implements PersistanceService { private ArticlesDAO articlesdao = null; final private CacheManager cacheManager = new CacheManager(); public PersistanceServiceImpl () { try { BeanFactory factory = new XmlBeanFactory( new ClassPathResource("wicket/webapp/dao/beans.xml")); this.articlesdao = (ArticlesDAO) factory.getBean("articlesDAO"); this.cacheManager.addCache("main_cache"); } catch (Exception e) { System.out.println(e.toString()); } } public List getArticles() { try { return (List)cacheManager.getCache("main_cache").get("articles_all").getObjectValue(); } catch(Exception e) { Cache cache = cacheManager.getCache("main_cache"); this.articlesdao.open(); List articles = this.articlesdao.getArticles(); this.articlesdao.close(); cache.put(new Element("articles_all",articles)); return (List)cache.get("articles_all").getObjectValue(); } } public List getArticles(int limit) { this.articlesdao.open(); List articles = this.articlesdao.getArticles(limit); this.articlesdao.close(); return articles; } }