package br.usp.ime.academicdevoir.sessao;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
@Component
@ApplicationScoped
public class CriadorDeSessionFactory implements ComponentFactory<SessionFactory> {
/**
* @uml.property name="factory"
* @uml.associationEnd
*/
private SessionFactory factory;
@PostConstruct
public void open() {
Configuration configuration = new Configuration();
configuration.configure();
this.factory = configuration.buildSessionFactory();
}
public SessionFactory getInstance() {
return factory;
}
@PreDestroy
public void close() {
this.factory.close();
}
}