@Override public ConnectionProvider get() { if (connectionProvider == null) { if (sessionFactory != null) { // If SessionFactory is provided, use the SessionFactoryServiceRegistry connectionProvider = HibernateProvider.getHibernateService(sessionFactory, ConnectionProvider.class); } else { // otherwise use the StandardServiceRegistry connectionProvider = standardServiceRegistry.getService(ConnectionProvider.class); } } return connectionProvider; }
public void close() { metaData = null; if (hibernateSessionFactory != null) { Preconditions.checkState(!hibernateSessionFactory.isClosed()); // close connection provider if possible (http://nuiton.org/issues/2757) ConnectionProvider service = getHibernateService(hibernateSessionFactory, ConnectionProvider.class); if (service instanceof Stoppable) { Stoppable stoppable = (Stoppable) service; stoppable.stop(); } hibernateSessionFactory.close(); } }
public SessionFactory newSessionFactory(Configuration effectiveHibernateConfiguration) { SessionFactory hibernateSessionFactory = TopiaUtil.newSessionFactory(effectiveHibernateConfiguration); EventListenerRegistry eventListenerRegistry = getHibernateService(hibernateSessionFactory, EventListenerRegistry.class); TopiaHibernateEventListener listener = new TopiaHibernateEventListener(sessionRegistry); eventListenerRegistry.appendListeners(EventType.PRE_INSERT, listener); eventListenerRegistry.appendListeners(EventType.PRE_LOAD, listener); eventListenerRegistry.appendListeners(EventType.PRE_UPDATE, listener); eventListenerRegistry.appendListeners(EventType.PRE_DELETE, listener); eventListenerRegistry.appendListeners(EventType.POST_INSERT, listener); eventListenerRegistry.appendListeners(EventType.POST_LOAD, listener); eventListenerRegistry.appendListeners(EventType.POST_UPDATE, listener); eventListenerRegistry.appendListeners(EventType.POST_DELETE, listener); // following listeners must be called before hibernate eventListenerRegistry.prependListeners(EventType.SAVE_UPDATE, listener); return hibernateSessionFactory; }
public SessionFactory getSessionFactory() { if (hibernateSessionFactory == null) { Configuration effectiveHibernateConfiguration = getHibernateConfiguration(); hibernateSessionFactory = TopiaUtil.newSessionFactory(effectiveHibernateConfiguration); EventListenerRegistry eventListenerRegistry = getHibernateService(hibernateSessionFactory, EventListenerRegistry.class); TopiaHibernateEventListener listener = new TopiaHibernateEventListener(sessionRegistry); eventListenerRegistry.appendListeners(EventType.PRE_INSERT, listener); eventListenerRegistry.appendListeners(EventType.PRE_LOAD, listener); eventListenerRegistry.appendListeners(EventType.PRE_UPDATE, listener); eventListenerRegistry.appendListeners(EventType.PRE_DELETE, listener); eventListenerRegistry.appendListeners(EventType.POST_INSERT, listener); eventListenerRegistry.appendListeners(EventType.POST_LOAD, listener); eventListenerRegistry.appendListeners(EventType.POST_UPDATE, listener); eventListenerRegistry.appendListeners(EventType.POST_DELETE, listener); // following listeners must be called before hibernate eventListenerRegistry.prependListeners(EventType.SAVE_UPDATE, listener); } return hibernateSessionFactory; }