All pastes #344642 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-07 22:01 UTC
rendered paste body
/**
 *
 */
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;
	}
}