package io.dropwizard.hibernate; import com.google.common.annotations.VisibleForTesting; import io.dropwizard.db.ManagedDataSource; import io.dropwizard.lifecycle.Managed; import org.hibernate.SessionFactory; public class SessionFactoryManager implements Managed { private final SessionFactory factory; private final ManagedDataSource dataSource; public SessionFactoryManager(SessionFactory factory, ManagedDataSource dataSource) { this.factory = factory; this.dataSource = dataSource; } @VisibleForTesting ManagedDataSource getDataSource() { return dataSource; } @Override public void start() throws Exception { dataSource.start(); } @Override public void stop() throws Exception { factory.close(); dataSource.stop(); } }