Skip to content

Commit 423cd7f

Browse files
committed
EventSource - StatelessSession and Envers
1 parent f2947c3 commit 423cd7f

File tree

55 files changed

+217
-178
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+217
-178
lines changed

hibernate-core/src/main/java/org/hibernate/cache/internal/CollectionCacheInvalidator.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package org.hibernate.cache.internal;
66

7-
import java.util.Set;
8-
97
import org.hibernate.HibernateException;
108
import org.hibernate.action.internal.CollectionAction;
119
import org.hibernate.boot.Metadata;
@@ -29,9 +27,10 @@
2927
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
3028
import org.hibernate.persister.collection.CollectionPersister;
3129
import org.hibernate.persister.entity.EntityPersister;
32-
3330
import org.jboss.logging.Logger;
3431

32+
import java.util.Set;
33+
3534
import static org.hibernate.cache.spi.SecondLevelCacheLogger.L2CACHE_LOGGER;
3635
import static org.hibernate.internal.util.StringHelper.isEmpty;
3736
import static org.hibernate.internal.util.collections.CollectionHelper.isEmpty;
@@ -65,7 +64,9 @@ public void integrate(
6564

6665
@Override
6766
public void onPostInsert(PostInsertEvent event) {
68-
evictCache( event.getEntity(), event.getPersister(), event.getSession(), null );
67+
if ( event.getSession() instanceof EventSource eventSource ) {
68+
evictCache( event.getEntity(), event.getPersister(), eventSource, null );
69+
}
6970
}
7071

7172
@Override
@@ -75,12 +76,16 @@ public boolean requiresPostCommitHandling(EntityPersister persister) {
7576

7677
@Override
7778
public void onPostDelete(PostDeleteEvent event) {
78-
evictCache( event.getEntity(), event.getPersister(), event.getSession(), null );
79+
if ( event.getSession() instanceof EventSource eventSource ) {
80+
evictCache( event.getEntity(), event.getPersister(), eventSource, null );
81+
}
7982
}
8083

8184
@Override
8285
public void onPostUpdate(PostUpdateEvent event) {
83-
evictCache( event.getEntity(), event.getPersister(), event.getSession(), event.getOldState() );
86+
if ( event.getSession() instanceof EventSource eventSource ) {
87+
evictCache( event.getEntity(), event.getPersister(), eventSource, event.getOldState() );
88+
}
8489
}
8590

8691
private void integrate(SessionFactoryImplementor sessionFactory) {

hibernate-core/src/main/java/org/hibernate/event/internal/DefaultLockEventListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.hibernate.engine.spi.PersistenceContext;
1717
import org.hibernate.engine.spi.SessionImplementor;
1818
import org.hibernate.engine.spi.Status;
19-
import org.hibernate.event.spi.AbstractEvent;
19+
import org.hibernate.event.spi.AbstractSessionEvent;
2020
import org.hibernate.event.spi.EventSource;
2121
import org.hibernate.event.spi.LockEvent;
2222
import org.hibernate.event.spi.LockEventListener;
@@ -117,7 +117,7 @@ private void cascadeOnLock(LockEvent event, EntityPersister persister, Object en
117117
*
118118
* @return An EntityEntry representing the entity within this session.
119119
*/
120-
protected final EntityEntry reassociate(AbstractEvent event, Object object, Object id, EntityPersister persister) {
120+
protected final EntityEntry reassociate(AbstractSessionEvent event, Object object, Object id, EntityPersister persister) {
121121

122122
if ( LOG.isTraceEnabled() ) {
123123
LOG.trace( "Reassociating transient instance: " + infoString( persister, id, event.getFactory() ) );

hibernate-core/src/main/java/org/hibernate/event/internal/PostUpdateEventListenerStandardImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55
package org.hibernate.event.internal;
66

7+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
78
import org.hibernate.engine.spi.Status;
8-
import org.hibernate.event.spi.EventSource;
99
import org.hibernate.event.spi.PostUpdateEvent;
1010
import org.hibernate.event.spi.PostUpdateEventListener;
1111
import org.hibernate.jpa.event.spi.CallbackRegistry;
@@ -29,7 +29,7 @@ public void onPostUpdate(PostUpdateEvent event) {
2929
handlePostUpdate( event.getEntity(), event.getSession() );
3030
}
3131

32-
private void handlePostUpdate(Object entity, EventSource source) {
32+
private void handlePostUpdate(Object entity, SharedSessionContractImplementor source) {
3333
// mimic the preUpdate filter
3434
if ( source == null // it must be a StatelessSession
3535
|| source.getPersistenceContextInternal().getEntry(entity).getStatus() != Status.DELETED ) {

hibernate-core/src/main/java/org/hibernate/event/internal/PostUpsertEventListenerStandardImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
package org.hibernate.event.internal;
66

7-
import org.hibernate.event.spi.EventSource;
7+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
88
import org.hibernate.event.spi.PostUpsertEvent;
99
import org.hibernate.event.spi.PostUpsertEventListener;
1010
import org.hibernate.jpa.event.spi.CallbackRegistry;
@@ -29,7 +29,7 @@ public void onPostUpsert(PostUpsertEvent event) {
2929
handlePostUpsert( event.getEntity(), event.getSession() );
3030
}
3131

32-
private void handlePostUpsert(Object entity, EventSource source) {
32+
private void handlePostUpsert(Object entity, SharedSessionContractImplementor source) {
3333
// // mimic the preUpdate filter
3434
// if ( source == null // it must be a StatelessSession
3535
// || source.getPersistenceContextInternal().getEntry(entity).getStatus() != Status.DELETED ) {

hibernate-core/src/main/java/org/hibernate/event/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/**
77
* This package defines a framework which models events occurring
88
* within a stateful Hibernate {@link org.hibernate.Session}. An
9-
* {@linkplain org.hibernate.event.spi.AbstractEvent event}
9+
* {@linkplain org.hibernate.event.spi.AbstractSessionEvent event}
1010
* represents a request by the session API for some work to be
1111
* performed, and an event listener must respond to the event and
1212
* do that work, usually by scheduling some sort of

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractCollectionEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
*
1515
* @author Gail Badner
1616
*/
17-
public abstract class AbstractCollectionEvent extends AbstractEvent {
17+
public abstract class AbstractCollectionEvent extends AbstractSessionEvent {
1818

1919
private final PersistentCollection<?> collection;
2020
private final Object affectedOwner;

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractDatabaseOperationEvent.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,20 @@
44
*/
55
package org.hibernate.event.spi;
66

7-
import org.hibernate.engine.spi.SessionFactoryImplementor;
7+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
88
import org.hibernate.persister.entity.EntityPersister;
99

1010
/**
11-
* Abstract supertype of {@link AbstractPostDatabaseOperationEvent}
12-
* and {@link AbstractPostDatabaseOperationEvent}.
11+
* Base for events which denote database operations.
12+
*
13+
* @see AbstractPreDatabaseOperationEvent
14+
* @see AbstractPostDatabaseOperationEvent
1315
*
1416
* @author Gavin King
1517
*
1618
* @since 7
1719
*/
1820
public abstract class AbstractDatabaseOperationEvent extends AbstractEvent {
19-
2021
private final Object entity;
2122
private final Object id;
2223
private final EntityPersister persister;
@@ -30,7 +31,7 @@ public abstract class AbstractDatabaseOperationEvent extends AbstractEvent {
3031
* @param persister The entity's persister.
3132
*/
3233
public AbstractDatabaseOperationEvent(
33-
EventSource source,
34+
SharedSessionContractImplementor source,
3435
Object entity,
3536
Object id,
3637
EntityPersister persister) {
@@ -42,38 +43,22 @@ public AbstractDatabaseOperationEvent(
4243

4344
/**
4445
* Retrieves the entity involved in the database operation.
45-
*
46-
* @return The entity.
4746
*/
4847
public Object getEntity() {
4948
return entity;
5049
}
5150

5251
/**
5352
* The id to be used in the database operation.
54-
*
55-
* @return The id.
5653
*/
5754
public Object getId() {
5855
return id;
5956
}
6057

6158
/**
6259
* The persister for the entity.
63-
*
64-
* @return The entity persister.
6560
*/
6661
public EntityPersister getPersister() {
6762
return persister;
6863
}
69-
70-
/**
71-
* The factory which owns the persister for the entity.
72-
*
73-
* @return The factory
74-
*/
75-
@Override
76-
public SessionFactoryImplementor getFactory() {
77-
return persister.getFactory();
78-
}
7964
}

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractEvent.java

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,28 @@
55
package org.hibernate.event.spi;
66

77
import org.hibernate.engine.spi.SessionFactoryImplementor;
8+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
89

910
import java.io.Serializable;
1011

1112
/**
12-
* Defines a base class for {@link org.hibernate.Session}-generated events.
13+
* Base class for events which are generated from a {@link org.hibernate.Session}
14+
* or {@linkplain org.hibernate.StatelessSession}.
1315
*
1416
* @author Steve Ebersole
1517
*/
1618
public abstract class AbstractEvent implements Serializable {
19+
protected final SharedSessionContractImplementor source;
1720

18-
private final EventSource session;
19-
20-
/**
21-
* Constructs an event from the given event session.
22-
*
23-
* @param source The session event source.
24-
*/
25-
public AbstractEvent(EventSource source) {
26-
this.session = source;
21+
public AbstractEvent(SharedSessionContractImplementor source) {
22+
this.source = source;
2723
}
2824

29-
/**
30-
* Returns the session event source for this event. This is the underlying
31-
* session from which this event was generated.
32-
*
33-
* @return The session event source.
34-
*/
35-
public final EventSource getSession() {
36-
return session;
25+
public SharedSessionContractImplementor getSession() {
26+
return source;
3727
}
3828

3929
public SessionFactoryImplementor getFactory() {
40-
return session.getFactory();
30+
return source.getFactory();
4131
}
4232
}

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPostDatabaseOperationEvent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
package org.hibernate.event.spi;
66

7+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
78
import org.hibernate.persister.entity.EntityPersister;
89

910
/**
@@ -24,7 +25,7 @@ public abstract class AbstractPostDatabaseOperationEvent extends AbstractDatabas
2425
* @param persister The entity's persister.
2526
*/
2627
public AbstractPostDatabaseOperationEvent(
27-
EventSource source,
28+
SharedSessionContractImplementor source,
2829
Object entity,
2930
Object id,
3031
EntityPersister persister) {

hibernate-core/src/main/java/org/hibernate/event/spi/AbstractPreDatabaseOperationEvent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
package org.hibernate.event.spi;
66

7+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
78
import org.hibernate.persister.entity.EntityPersister;
89

910
/**
@@ -22,7 +23,7 @@ public abstract class AbstractPreDatabaseOperationEvent extends AbstractDatabase
2223
* @param persister The entity's persister.
2324
*/
2425
public AbstractPreDatabaseOperationEvent(
25-
EventSource source,
26+
SharedSessionContractImplementor source,
2627
Object entity,
2728
Object id,
2829
EntityPersister persister) {

0 commit comments

Comments
 (0)