Skip to content

Commit afd081b

Browse files
SanneDavideD
authored andcommitted
Avoid lookup of Event Listener Group(s)
1 parent 412f977 commit afd081b

File tree

4 files changed

+37
-16
lines changed

4 files changed

+37
-16
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/event/impl/AbstractReactiveFlushingEventListener.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
import org.hibernate.engine.spi.PersistenceContext;
2020
import org.hibernate.engine.spi.SessionImplementor;
2121
import org.hibernate.engine.spi.Status;
22-
import org.hibernate.event.service.spi.EventListenerRegistry;
2322
import org.hibernate.event.spi.EventSource;
24-
import org.hibernate.event.spi.EventType;
2523
import org.hibernate.event.spi.FlushEntityEvent;
2624
import org.hibernate.event.spi.FlushEntityEventListener;
2725
import org.hibernate.event.spi.FlushEvent;
@@ -169,9 +167,9 @@ private int flushEntities(final FlushEvent event, final PersistenceContext persi
169167

170168
final EventSource source = event.getSession();
171169
final Iterable<FlushEntityEventListener> flushListeners =
172-
source.getFactory().getServiceRegistry()
173-
.getService( EventListenerRegistry.class )
174-
.getEventListenerGroup( EventType.FLUSH_ENTITY )
170+
source.getFactory()
171+
.getFastSessionServices()
172+
.eventListenerGroup_FLUSH_ENTITY
175173
.listeners();
176174

177175
// Among other things, updateReachables() will recursively load all

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ReactiveLoaderBasedResultSetProcessor.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,18 @@
88
import org.hibernate.HibernateException;
99
import org.hibernate.dialect.pagination.LimitHelper;
1010
import org.hibernate.engine.internal.TwoPhaseLoad;
11-
import org.hibernate.engine.spi.*;
11+
import org.hibernate.engine.spi.EntityEntry;
12+
import org.hibernate.engine.spi.EntityKey;
13+
import org.hibernate.engine.spi.PersistenceContext;
14+
import org.hibernate.engine.spi.QueryParameters;
15+
import org.hibernate.engine.spi.RowSelection;
16+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1217
import org.hibernate.event.service.spi.EventListenerRegistry;
13-
import org.hibernate.event.spi.*;
18+
import org.hibernate.event.spi.EventSource;
19+
import org.hibernate.event.spi.EventType;
20+
import org.hibernate.event.spi.PostLoadEvent;
21+
import org.hibernate.event.spi.PreLoadEvent;
22+
import org.hibernate.event.spi.PreLoadEventListener;
1423
import org.hibernate.internal.CoreLogging;
1524
import org.hibernate.internal.CoreMessageLogger;
1625
import org.hibernate.loader.plan.exec.query.spi.NamedParameterContext;

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/entity/impl/ReactivePlanEntityLoader.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@
88
import org.hibernate.LockMode;
99
import org.hibernate.LockOptions;
1010
import org.hibernate.MappingException;
11-
import org.hibernate.engine.spi.*;
12-
import org.hibernate.event.service.spi.EventListenerRegistry;
13-
import org.hibernate.event.spi.*;
11+
import org.hibernate.engine.spi.LoadQueryInfluencers;
12+
import org.hibernate.engine.spi.QueryParameters;
13+
import org.hibernate.engine.spi.SessionFactoryImplementor;
14+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
15+
import org.hibernate.event.spi.EventSource;
16+
import org.hibernate.event.spi.PostLoadEvent;
17+
import org.hibernate.event.spi.PreLoadEvent;
18+
import org.hibernate.event.spi.PreLoadEventListener;
1419
import org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader;
1520
import org.hibernate.loader.plan.exec.internal.EntityLoadQueryDetails;
1621
import org.hibernate.loader.plan.exec.process.internal.AbstractRowReader;
@@ -431,12 +436,11 @@ public CompletionStage<Void> reactivePerformTwoPhaseLoad(
431436
}
432437

433438
final SharedSessionContractImplementor session = context.getSession();
434-
@SuppressWarnings("deprecation")
439+
435440
final Iterable<PreLoadEventListener> listeners = session
436441
.getFactory()
437-
.getServiceRegistry()
438-
.getService( EventListenerRegistry.class )
439-
.getEventListenerGroup( EventType.PRE_LOAD )
442+
.getFastSessionServices()
443+
.eventListenerGroup_PRE_LOAD
440444
.listeners();
441445

442446
return CompletionStages.loop(

hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveSessionImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ public class ReactiveSessionImpl extends SessionImpl implements ReactiveSession,
129129

130130
//Lazily initialized
131131
private transient ExceptionConverter exceptionConverter;
132+
private transient EventListenerRegistry eventListenerRegistry;
132133

133134
public ReactiveSessionImpl(SessionFactoryImpl delegate, SessionCreationOptions options,
134135
ReactiveConnection connection) {
@@ -1095,12 +1096,21 @@ private <E,L,RL,P> CompletionStage<Void> fire(E event, P extra, EventType<L> eve
10951096

10961097
@SuppressWarnings("deprecation")
10971098
private <T> Iterable<T> eventListeners(EventType<T> type) {
1098-
return getFactory().unwrap( SessionFactoryImplementor.class )
1099-
.getServiceRegistry().getService( EventListenerRegistry.class )
1099+
return getEventListenerRegistry()
11001100
.getEventListenerGroup( type )
11011101
.listeners();
11021102
}
11031103

1104+
private EventListenerRegistry getEventListenerRegistry() {
1105+
if ( this.eventListenerRegistry == null ) {
1106+
this.eventListenerRegistry = getFactory()
1107+
.unwrap( SessionFactoryImplementor.class )
1108+
.getServiceRegistry()
1109+
.getService( EventListenerRegistry.class );
1110+
}
1111+
return this.eventListenerRegistry;
1112+
}
1113+
11041114
private CompletionStage<Void> fireLoad(LoadEvent event, LoadEventListener.LoadType loadType) {
11051115
checkOpenOrWaitingForAutoClose();
11061116

0 commit comments

Comments
 (0)