File tree Expand file tree Collapse file tree 1 file changed +53
-0
lines changed
hibernate-reactive-core/src/test/java/org/hibernate/reactive/testing Expand file tree Collapse file tree 1 file changed +53
-0
lines changed Original file line number Diff line number Diff line change
1
+ /* Hibernate, Relational Persistence for Idiomatic Java
2
+ *
3
+ * SPDX-License-Identifier: LGPL-2.1-or-later
4
+ * Copyright: Red Hat Inc. and Hibernate Authors
5
+ */
6
+ package org .hibernate .reactive .testing ;
7
+
8
+ import java .util .function .Supplier ;
9
+
10
+ import org .hibernate .SessionFactory ;
11
+ import org .hibernate .engine .spi .SessionFactoryImplementor ;
12
+ import org .hibernate .reactive .pool .ReactiveConnectionPool ;
13
+
14
+ /**
15
+ * Managed the creation of a {@link SessionFactory} that can shared among tests.
16
+ */
17
+ public class SessionFactoryManager {
18
+
19
+ private SessionFactory sessionFactory ;
20
+ private ReactiveConnectionPool poolProvider ;
21
+
22
+ public SessionFactoryManager () {
23
+ }
24
+
25
+ private boolean needsStart () {
26
+ return sessionFactory == null || sessionFactory .isClosed ();
27
+ }
28
+
29
+ public void start (Supplier <SessionFactory > supplier ) {
30
+ if ( needsStart () ) {
31
+ sessionFactory = supplier .get ();
32
+ poolProvider = sessionFactory
33
+ .unwrap ( SessionFactoryImplementor .class )
34
+ .getServiceRegistry ().getService ( ReactiveConnectionPool .class );
35
+ }
36
+ }
37
+
38
+ public SessionFactory getHibernateSessionFactory () {
39
+ return sessionFactory ;
40
+ }
41
+
42
+ public ReactiveConnectionPool getReactiveConnectionPool () {
43
+ return poolProvider ;
44
+ }
45
+
46
+ public void stop () {
47
+ if ( sessionFactory != null && sessionFactory .isOpen () ) {
48
+ sessionFactory .close ();
49
+ }
50
+ poolProvider = null ;
51
+ sessionFactory = null ;
52
+ }
53
+ }
You can’t perform that action at this time.
0 commit comments