package org.atomhopper.hibernate; import java.util.Map; import org.atomhopper.adapter.jpa.PersistedCategory; import org.atomhopper.adapter.jpa.PersistedEntry; import org.atomhopper.adapter.jpa.PersistedFeed; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateSessionManager { private final SessionFactory sessionFactory; public HibernateSessionManager(Map<String, String> parameters) { sessionFactory = buildSessionFactory(parameters); } private static SessionFactory buildSessionFactory(Map<String, String> parameters) { final Configuration hibernateConfiguration = new Configuration() .addAnnotatedClass(PersistedFeed.class) .addAnnotatedClass(PersistedEntry.class) .addAnnotatedClass(PersistedCategory.class); for (Map.Entry<String, String> userParameter : parameters.entrySet()) { hibernateConfiguration.setProperty(userParameter.getKey(), userParameter.getValue()); } return hibernateConfiguration.buildSessionFactory(); } public Session getSession() { return sessionFactory.openSession(); } }