mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-13 22:54:51 +00:00
HHH-8654 - Ability to get notified of interesting Session events
(cherry picked from commit 1e74abf5118cccd0f2c6e71de76be36d50453576) Conflicts: hibernate-core/src/main/java/org/hibernate/cfg/SettingsFactory.java hibernate-core/src/main/java/org/hibernate/engine/spi/SessionDelegatorBaseImpl.java hibernate-core/src/main/java/org/hibernate/engine/spi/SessionImplementor.java hibernate-core/src/main/java/org/hibernate/internal/AbstractSessionImpl.java hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java hibernate-core/src/test/resources/log4j.properties
This commit is contained in:
parent
2d911d215b
commit
50870c742f
@ -24,13 +24,13 @@
|
||||
package org.hibernate;
|
||||
|
||||
/**
|
||||
* A no-op implementation of SessionEventsListener. Intended as a convenient base class for developing
|
||||
* SessionEventsListener implementations.
|
||||
* A no-op implementation of SessionEventListener. Intended as a convenient base class for developing
|
||||
* SessionEventListener implementations.
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public class EmptySessionEventsListener implements SessionEventsListener {
|
||||
public class BaseSessionEventListener implements SessionEventListener {
|
||||
@Override
|
||||
public void transactionCompletion(boolean successful) {
|
||||
}
|
@ -1083,5 +1083,5 @@ public interface LockRequest {
|
||||
*
|
||||
* @param listeners The listener(s) to add
|
||||
*/
|
||||
public void addEventsListeners(SessionEventsListener... listeners);
|
||||
public void addEventListeners(SessionEventListener... listeners);
|
||||
}
|
||||
|
@ -119,13 +119,13 @@ public interface SessionBuilder {
|
||||
public SessionBuilder tenantIdentifier(String tenantIdentifier);
|
||||
|
||||
/**
|
||||
* Apply one or more SessionEventsListener instances to the listeners for the Session to be built.
|
||||
* Apply one or more SessionEventListener instances to the listeners for the Session to be built.
|
||||
*
|
||||
* @param listeners The listeners to incorporate into the built Session
|
||||
*
|
||||
* @return {@code this}, for method chaining
|
||||
*/
|
||||
public SessionBuilder eventListeners(SessionEventsListener... listeners);
|
||||
public SessionBuilder eventListeners(SessionEventListener... listeners);
|
||||
|
||||
/**
|
||||
* Remove all listeners intended for the built Session currently held here, including any auto-apply ones; in other
|
||||
|
@ -30,7 +30,7 @@
|
||||
*
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface SessionEventsListener extends Serializable {
|
||||
public interface SessionEventListener extends Serializable {
|
||||
public void transactionCompletion(boolean successful);
|
||||
|
||||
public void jdbcConnectionAcquisitionStart();
|
@ -137,11 +137,11 @@ public void execute() throws HibernateException {
|
||||
|
||||
private boolean cacheInsert(EntityPersister persister, CacheKey ck) {
|
||||
try {
|
||||
getSession().getSessionEventsManager().cachePutStart();
|
||||
getSession().getEventListenerManager().cachePutStart();
|
||||
return persister.getCacheAccessStrategy().insert( ck, cacheEntry, version );
|
||||
}
|
||||
finally {
|
||||
getSession().getSessionEventsManager().cachePutEnd();
|
||||
getSession().getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
}
|
||||
|
||||
@ -199,7 +199,7 @@ public void doAfterTransactionCompletion(boolean success, SessionImplementor ses
|
||||
if ( success && isCachePutEnabled( persister, getSession() ) ) {
|
||||
final CacheKey ck = getSession().generateCacheKey( getId(), persister.getIdentifierType(), persister.getRootEntityName() );
|
||||
try {
|
||||
getSession().getSessionEventsManager().cachePutStart();
|
||||
getSession().getEventListenerManager().cachePutStart();
|
||||
final boolean put = persister.getCacheAccessStrategy().afterInsert( ck, cacheEntry, version );
|
||||
|
||||
if ( put && getSession().getFactory().getStatistics().isStatisticsEnabled() ) {
|
||||
@ -208,7 +208,7 @@ public void doAfterTransactionCompletion(boolean success, SessionImplementor ses
|
||||
}
|
||||
}
|
||||
finally {
|
||||
getSession().getSessionEventsManager().cachePutEnd();
|
||||
getSession().getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
}
|
||||
postCommitInsert();
|
||||
|
@ -292,7 +292,7 @@ public void doAfterTransactionCompletion(boolean success, SessionImplementor ses
|
||||
|
||||
if ( success && cacheEntry!=null /*!persister.isCacheInvalidationRequired()*/ ) {
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
final boolean put = persister.getCacheAccessStrategy().afterUpdate( ck, cacheEntry, nextVersion, previousVersion, lock );
|
||||
|
||||
if ( put && getSession().getFactory().getStatistics().isStatisticsEnabled() ) {
|
||||
@ -300,7 +300,7 @@ public void doAfterTransactionCompletion(boolean success, SessionImplementor ses
|
||||
}
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -118,11 +118,11 @@ public boolean put(
|
||||
}
|
||||
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
cacheRegion.put( key, cacheable );
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -197,11 +197,11 @@ public List get(
|
||||
private List getCachedResults(QueryKey key, SessionImplementor session) {
|
||||
List cacheable = null;
|
||||
try {
|
||||
session.getSessionEventsManager().cacheGetStart();
|
||||
session.getEventListenerManager().cacheGetStart();
|
||||
cacheable = (List) cacheRegion.get( key );
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cacheGetEnd( cacheable != null );
|
||||
session.getEventListenerManager().cacheGetEnd( cacheable != null );
|
||||
}
|
||||
return cacheable;
|
||||
}
|
||||
|
@ -89,14 +89,14 @@ public void preInvalidate(Serializable[] spaces, SessionImplementor session) thr
|
||||
}
|
||||
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
|
||||
//put() has nowait semantics, is this really appropriate?
|
||||
//note that it needs to be async replication, never local or sync
|
||||
region.put( space, ts );
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
|
||||
if ( stats ) {
|
||||
@ -126,14 +126,14 @@ public void invalidate(Serializable[] spaces, SessionImplementor session) throws
|
||||
}
|
||||
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
|
||||
//put() has nowait semantics, is this really appropriate?
|
||||
//note that it needs to be async replication, never local or sync
|
||||
region.put( space, ts );
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
|
||||
if ( stats ) {
|
||||
@ -192,11 +192,11 @@ public boolean isUpToDate(Set<Serializable> spaces, Long timestamp, SessionImple
|
||||
private Long getLastUpdateTimestampForSpace(Serializable space, SessionImplementor session) {
|
||||
Long ts = null;
|
||||
try {
|
||||
session.getSessionEventsManager().cacheGetStart();
|
||||
session.getEventListenerManager().cacheGetStart();
|
||||
ts = (Long) region.get( space );
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cacheGetEnd( ts != null );
|
||||
session.getEventListenerManager().cacheGetEnd( ts != null );
|
||||
}
|
||||
return ts;
|
||||
}
|
||||
|
@ -669,7 +669,7 @@ public interface AvailableSettings {
|
||||
String UNIQUE_CONSTRAINT_SCHEMA_UPDATE_STRATEGY = "hibernate.schema_update.unique_constraint_strategy";
|
||||
|
||||
/**
|
||||
* A setting to control whether to {@link org.hibernate.engine.internal.LoggingSessionEventsListener} is
|
||||
* A setting to control whether to {@link org.hibernate.engine.internal.StatisticalLoggingSessionEventListener} is
|
||||
* enabled on all Sessions (unless explicitly disabled for a given Session). The default value of this
|
||||
* setting is determined by the value for {@link #GENERATE_STATISTICS}, meaning that if collection of statistics
|
||||
* is enabled logging of Session metrics is enabled by default too.
|
||||
|
@ -27,19 +27,19 @@
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.engine.internal.LoggingSessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.engine.internal.StatisticalLoggingSessionEventListener;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public class BaselineSessionEventsListenerBuilder {
|
||||
private boolean logSessionMetrics;
|
||||
private Class<? extends SessionEventsListener> autoListener;
|
||||
private Class<? extends SessionEventListener> autoListener;
|
||||
|
||||
public BaselineSessionEventsListenerBuilder(
|
||||
boolean logSessionMetrics,
|
||||
Class<? extends SessionEventsListener> autoListener) {
|
||||
Class<? extends SessionEventListener> autoListener) {
|
||||
this.logSessionMetrics = logSessionMetrics;
|
||||
this.autoListener = autoListener;
|
||||
}
|
||||
@ -55,19 +55,19 @@ public void setLogSessionMetrics(boolean logSessionMetrics) {
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public Class<? extends SessionEventsListener> getAutoListener() {
|
||||
public Class<? extends SessionEventListener> getAutoListener() {
|
||||
return autoListener;
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public void setAutoListener(Class<? extends SessionEventsListener> autoListener) {
|
||||
public void setAutoListener(Class<? extends SessionEventListener> autoListener) {
|
||||
this.autoListener = autoListener;
|
||||
}
|
||||
|
||||
public List<SessionEventsListener> buildBaselineList() {
|
||||
List<SessionEventsListener> list = new ArrayList<SessionEventsListener>();
|
||||
if ( logSessionMetrics && LoggingSessionEventsListener.isLoggingEnabled() ) {
|
||||
list.add( new LoggingSessionEventsListener() );
|
||||
public List<SessionEventListener> buildBaselineList() {
|
||||
List<SessionEventListener> list = new ArrayList<SessionEventListener>();
|
||||
if ( logSessionMetrics && StatisticalLoggingSessionEventListener.isLoggingEnabled() ) {
|
||||
list.add( new StatisticalLoggingSessionEventListener() );
|
||||
}
|
||||
if ( autoListener != null ) {
|
||||
try {
|
||||
@ -75,7 +75,7 @@ public List<SessionEventsListener> buildBaselineList() {
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new HibernateException(
|
||||
"Unable to instantiate specified auto SessionEventsListener : " + autoListener.getName(),
|
||||
"Unable to instantiate specified auto SessionEventListener : " + autoListener.getName(),
|
||||
e
|
||||
);
|
||||
}
|
||||
|
@ -32,14 +32,13 @@
|
||||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.MultiTenancyStrategy;
|
||||
import org.hibernate.NullPrecedence;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.cache.internal.NoCachingRegionFactory;
|
||||
import org.hibernate.cache.internal.RegionFactoryInitiator;
|
||||
import org.hibernate.cache.internal.StandardQueryCacheFactory;
|
||||
import org.hibernate.cache.spi.QueryCacheFactory;
|
||||
import org.hibernate.cache.spi.RegionFactory;
|
||||
import org.hibernate.dialect.Dialect;
|
||||
import org.hibernate.engine.internal.LoggingSessionEventsListener;
|
||||
import org.hibernate.engine.jdbc.spi.ExtractedDatabaseMetaData;
|
||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||
import org.hibernate.engine.transaction.spi.TransactionFactory;
|
||||
@ -414,7 +413,7 @@ else if ( !StringHelper.isEmpty( autoSchemaExport ) ) {
|
||||
}
|
||||
settings.setJtaTrackByThread( jtaTrackByThread );
|
||||
|
||||
final Class<? extends SessionEventsListener> autoSessionEventsListenerClass = resolveAutoSessionEventListenerClass( properties, classLoaderService );
|
||||
final Class<? extends SessionEventListener> autoSessionEventsListenerClass = resolveAutoSessionEventListenerClass( properties, classLoaderService );
|
||||
final boolean logSessionMetrics = ConfigurationHelper.getBoolean(
|
||||
AvailableSettings.LOG_SESSION_METRICS,
|
||||
properties,
|
||||
@ -430,7 +429,7 @@ else if ( !StringHelper.isEmpty( autoSchemaExport ) ) {
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked", "ConstantConditions"})
|
||||
private Class<SessionEventsListener> resolveAutoSessionEventListenerClass(
|
||||
private Class<SessionEventListener> resolveAutoSessionEventListenerClass(
|
||||
Properties properties,
|
||||
ClassLoaderService classLoaderService) {
|
||||
final Object setting = properties.getProperty( AvailableSettings.AUTO_SESSION_EVENTS_LISTENER );
|
||||
@ -439,7 +438,7 @@ private Class<SessionEventsListener> resolveAutoSessionEventListenerClass(
|
||||
}
|
||||
|
||||
if ( Class.class.isInstance( setting ) ) {
|
||||
return (Class<SessionEventsListener>) setting;
|
||||
return (Class<SessionEventListener>) setting;
|
||||
}
|
||||
else {
|
||||
final String settingStr = setting.toString();
|
||||
|
@ -27,18 +27,18 @@
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public class SessionEventsManagerImpl implements SessionEventsManager, Serializable {
|
||||
private List<SessionEventsListener> listenerList;
|
||||
public class SessionEventListenerManagerImpl implements SessionEventListenerManager, Serializable {
|
||||
private List<SessionEventListener> listenerList;
|
||||
|
||||
public void addListener(SessionEventsListener... listeners) {
|
||||
public void addListener(SessionEventListener... listeners) {
|
||||
if ( listenerList == null ) {
|
||||
listenerList = new ArrayList<SessionEventsListener>();
|
||||
listenerList = new ArrayList<SessionEventListener>();
|
||||
}
|
||||
|
||||
java.util.Collections.addAll( listenerList, listeners );
|
||||
@ -50,7 +50,7 @@ public void transactionCompletion(boolean successful) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.transactionCompletion( successful );
|
||||
}
|
||||
}
|
||||
@ -61,7 +61,7 @@ public void jdbcConnectionAcquisitionStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcConnectionAcquisitionStart();
|
||||
}
|
||||
}
|
||||
@ -72,7 +72,7 @@ public void jdbcConnectionAcquisitionEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcConnectionAcquisitionEnd();
|
||||
}
|
||||
}
|
||||
@ -83,7 +83,7 @@ public void jdbcConnectionReleaseStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcConnectionReleaseStart();
|
||||
}
|
||||
}
|
||||
@ -94,7 +94,7 @@ public void jdbcConnectionReleaseEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcConnectionReleaseEnd();
|
||||
}
|
||||
}
|
||||
@ -105,7 +105,7 @@ public void jdbcPrepareStatementStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcPrepareStatementStart();
|
||||
}
|
||||
}
|
||||
@ -116,7 +116,7 @@ public void jdbcPrepareStatementEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcPrepareStatementEnd();
|
||||
}
|
||||
}
|
||||
@ -127,7 +127,7 @@ public void jdbcExecuteStatementStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcExecuteStatementStart();
|
||||
}
|
||||
}
|
||||
@ -138,7 +138,7 @@ public void jdbcExecuteStatementEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcExecuteStatementEnd();
|
||||
}
|
||||
}
|
||||
@ -149,7 +149,7 @@ public void jdbcExecuteBatchStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcExecuteBatchStart();
|
||||
}
|
||||
}
|
||||
@ -160,7 +160,7 @@ public void jdbcExecuteBatchEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.jdbcExecuteBatchEnd();
|
||||
}
|
||||
}
|
||||
@ -171,7 +171,7 @@ public void cachePutStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.cachePutStart();
|
||||
}
|
||||
}
|
||||
@ -182,7 +182,7 @@ public void cachePutEnd() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.cachePutEnd();
|
||||
}
|
||||
}
|
||||
@ -193,7 +193,7 @@ public void cacheGetStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.cacheGetStart();
|
||||
}
|
||||
}
|
||||
@ -204,7 +204,7 @@ public void cacheGetEnd(boolean hit) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.cacheGetEnd( hit );
|
||||
}
|
||||
}
|
||||
@ -215,7 +215,7 @@ public void flushStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.flushStart();
|
||||
}
|
||||
}
|
||||
@ -226,7 +226,7 @@ public void flushEnd(int numberOfEntities, int numberOfCollections) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.flushEnd( numberOfEntities, numberOfCollections );
|
||||
}
|
||||
}
|
||||
@ -237,7 +237,7 @@ public void partialFlushStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.partialFlushStart();
|
||||
}
|
||||
}
|
||||
@ -248,7 +248,7 @@ public void partialFlushEnd(int numberOfEntities, int numberOfCollections) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.partialFlushEnd( numberOfEntities, numberOfCollections );
|
||||
}
|
||||
}
|
||||
@ -259,7 +259,7 @@ public void dirtyCalculationStart() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.dirtyCalculationStart();
|
||||
}
|
||||
}
|
||||
@ -270,7 +270,7 @@ public void dirtyCalculationEnd(boolean dirty) {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.dirtyCalculationEnd( dirty );
|
||||
}
|
||||
}
|
||||
@ -281,7 +281,7 @@ public void end() {
|
||||
return;
|
||||
}
|
||||
|
||||
for ( SessionEventsListener listener : listenerList ) {
|
||||
for ( SessionEventListener listener : listenerList ) {
|
||||
listener.end();
|
||||
}
|
||||
}
|
@ -25,13 +25,13 @@
|
||||
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
import org.hibernate.EmptySessionEventsListener;
|
||||
import org.hibernate.BaseSessionEventListener;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public class LoggingSessionEventsListener extends EmptySessionEventsListener {
|
||||
private static final Logger log = Logger.getLogger( LoggingSessionEventsListener.class );
|
||||
public class StatisticalLoggingSessionEventListener extends BaseSessionEventListener {
|
||||
private static final Logger log = Logger.getLogger( StatisticalLoggingSessionEventListener.class );
|
||||
|
||||
/**
|
||||
* Used by SettingsFactory (in conjunction with stats being enabled) to determine whether to apply this listener
|
@ -215,7 +215,7 @@ private static void doInitializeEntity(
|
||||
}
|
||||
else {
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
final boolean put = persister.getCacheAccessStrategy().putFromLoad(
|
||||
cacheKey,
|
||||
persister.getCacheEntryStructure().structure( entry ),
|
||||
@ -229,7 +229,7 @@ private static void doInitializeEntity(
|
||||
}
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -335,7 +335,7 @@ private void addCollectionToCache(LoadingCollectionEntry lce, CollectionPersiste
|
||||
final CacheKey cacheKey = session.generateCacheKey( lce.getKey(), persister.getKeyType(), persister.getRole() );
|
||||
|
||||
try {
|
||||
session.getSessionEventsManager().cachePutStart();
|
||||
session.getEventListenerManager().cachePutStart();
|
||||
final boolean put = persister.getCacheAccessStrategy().putFromLoad(
|
||||
cacheKey,
|
||||
persister.getCacheEntryStructure().structure( entry ),
|
||||
@ -349,7 +349,7 @@ private void addCollectionToCache(LoadingCollectionEntry lce, CollectionPersiste
|
||||
}
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().cachePutEnd();
|
||||
session.getEventListenerManager().cachePutEnd();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
||||
import org.hibernate.ScrollMode;
|
||||
import org.hibernate.ScrollableResults;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.SharedSessionBuilder;
|
||||
import org.hibernate.SimpleNaturalIdLoadAccess;
|
||||
@ -377,8 +377,8 @@ public LoadQueryInfluencers getLoadQueryInfluencers() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionEventsManager getSessionEventsManager() {
|
||||
return sessionImplementor.getSessionEventsManager();
|
||||
public SessionEventListenerManager getEventListenerManager() {
|
||||
return sessionImplementor.getEventListenerManager();
|
||||
}
|
||||
|
||||
// Delegates to Session
|
||||
@ -696,7 +696,7 @@ public LobHelper getLobHelper() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEventsListeners(SessionEventsListener... listeners) {
|
||||
session.addEventsListeners( listeners );
|
||||
public void addEventListeners(SessionEventListener... listeners) {
|
||||
session.addEventListeners( listeners );
|
||||
}
|
||||
}
|
||||
|
@ -23,10 +23,10 @@
|
||||
*/
|
||||
package org.hibernate.engine.spi;
|
||||
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
|
||||
/**
|
||||
* @author Steve Ebersole
|
||||
*/
|
||||
public interface SessionEventsManager extends SessionEventsListener {
|
||||
public interface SessionEventListenerManager extends SessionEventListener {
|
||||
}
|
@ -390,5 +390,5 @@ public ScrollableResults scroll(NativeSQLQuerySpecification spec, QueryParameter
|
||||
*/
|
||||
public LoadQueryInfluencers getLoadQueryInfluencers();
|
||||
|
||||
public SessionEventsManager getSessionEventsManager();
|
||||
public SessionEventListenerManager getEventListenerManager();
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ public class DefaultAutoFlushEventListener extends AbstractFlushingEventListener
|
||||
public void onAutoFlush(AutoFlushEvent event) throws HibernateException {
|
||||
final EventSource source = event.getSession();
|
||||
try {
|
||||
source.getSessionEventsManager().partialFlushStart();
|
||||
source.getEventListenerManager().partialFlushStart();
|
||||
|
||||
if ( flushMightBeNeeded(source) ) {
|
||||
// Need to get the number of collection removals before flushing to executions
|
||||
@ -82,7 +82,7 @@ public void onAutoFlush(AutoFlushEvent event) throws HibernateException {
|
||||
}
|
||||
}
|
||||
finally {
|
||||
source.getSessionEventsManager().partialFlushEnd(
|
||||
source.getEventListenerManager().partialFlushEnd(
|
||||
event.getNumberOfEntitiesProcessed(),
|
||||
event.getNumberOfEntitiesProcessed()
|
||||
);
|
||||
|
@ -527,7 +527,7 @@ public void doDirtyChecking(CustomEntityDirtinessStrategy.AttributeChecker attri
|
||||
if ( dirtyProperties==null ) {
|
||||
// Interceptor returned null, so do the dirtycheck ourself, if possible
|
||||
try {
|
||||
session.getSessionEventsManager().dirtyCalculationStart();
|
||||
session.getEventListenerManager().dirtyCalculationStart();
|
||||
|
||||
interceptorHandledDirtyCheck = false;
|
||||
// object loaded by update()
|
||||
@ -567,7 +567,7 @@ else if ( entry.getStatus() == Status.DELETED && ! event.getEntityEntry().isModi
|
||||
}
|
||||
}
|
||||
finally {
|
||||
session.getSessionEventsManager().dirtyCalculationEnd( dirtyProperties != null );
|
||||
session.getEventListenerManager().dirtyCalculationEnd( dirtyProperties != null );
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -50,14 +50,14 @@ public void onFlush(FlushEvent event) throws HibernateException {
|
||||
persistenceContext.getCollectionEntries().size() > 0 ) {
|
||||
|
||||
try {
|
||||
source.getSessionEventsManager().flushStart();
|
||||
source.getEventListenerManager().flushStart();
|
||||
|
||||
flushEverythingToExecutions( event );
|
||||
performExecutions( source );
|
||||
postFlush( source );
|
||||
}
|
||||
finally {
|
||||
source.getSessionEventsManager().flushEnd(
|
||||
source.getEventListenerManager().flushEnd(
|
||||
event.getNumberOfEntitiesProcessed(),
|
||||
event.getNumberOfCollectionsProcessed()
|
||||
);
|
||||
|
@ -128,7 +128,7 @@ private boolean initializeCollectionFromCache(
|
||||
|
||||
Object ce = null;
|
||||
try {
|
||||
source.getSessionEventsManager().cacheGetStart();
|
||||
source.getEventListenerManager().cacheGetStart();
|
||||
ce = persister.getCacheAccessStrategy().get(ck, source.getTimestamp());
|
||||
|
||||
if ( factory.getStatistics().isStatisticsEnabled() ) {
|
||||
@ -143,7 +143,7 @@ private boolean initializeCollectionFromCache(
|
||||
}
|
||||
}
|
||||
finally {
|
||||
source.getSessionEventsManager().cacheGetEnd( ce == null );
|
||||
source.getEventListenerManager().cacheGetEnd( ce == null );
|
||||
}
|
||||
|
||||
if ( ce == null ) {
|
||||
|
@ -549,7 +549,7 @@ protected Object loadFromSecondLevelCache(
|
||||
|
||||
Object ce = null;
|
||||
try {
|
||||
source.getSessionEventsManager().cacheGetStart();
|
||||
source.getEventListenerManager().cacheGetStart();
|
||||
ce = persister.getCacheAccessStrategy().get( ck, source.getTimestamp() );
|
||||
|
||||
if ( factory.getStatistics().isStatisticsEnabled() ) {
|
||||
@ -566,7 +566,7 @@ protected Object loadFromSecondLevelCache(
|
||||
}
|
||||
}
|
||||
finally {
|
||||
source.getSessionEventsManager().cacheGetEnd( ce == null );
|
||||
source.getEventListenerManager().cacheGetEnd( ce == null );
|
||||
}
|
||||
|
||||
if ( ce == null ) {
|
||||
|
@ -41,7 +41,7 @@
|
||||
import org.hibernate.engine.jdbc.internal.FormatStyle;
|
||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.id.enhanced.AccessCallback;
|
||||
import org.hibernate.id.enhanced.OptimizerFactory;
|
||||
@ -146,7 +146,7 @@ public synchronized Serializable generate(final SessionImplementor session, Obje
|
||||
final SqlStatementLogger statementLogger = session.getFactory().getServiceRegistry()
|
||||
.getService( JdbcServices.class )
|
||||
.getSqlStatementLogger();
|
||||
final SessionEventsManager statsCollector = session.getSessionEventsManager();
|
||||
final SessionEventListenerManager statsCollector = session.getEventListenerManager();
|
||||
|
||||
final WorkExecutorVisitable<IntegralDataTypeHolder> work = new AbstractReturningWork<IntegralDataTypeHolder>() {
|
||||
@Override
|
||||
@ -227,7 +227,7 @@ private PreparedStatement prepareStatement(
|
||||
Connection connection,
|
||||
String sql,
|
||||
SqlStatementLogger statementLogger,
|
||||
SessionEventsManager statsCollector) throws SQLException {
|
||||
SessionEventListenerManager statsCollector) throws SQLException {
|
||||
statementLogger.logStatement( sql, FormatStyle.BASIC.getFormatter() );
|
||||
try {
|
||||
statsCollector.jdbcPrepareStatementStart();
|
||||
@ -238,7 +238,7 @@ private PreparedStatement prepareStatement(
|
||||
}
|
||||
}
|
||||
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeUpdate();
|
||||
@ -249,7 +249,7 @@ private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollec
|
||||
|
||||
}
|
||||
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeQuery();
|
||||
|
@ -40,7 +40,7 @@
|
||||
import org.hibernate.engine.jdbc.internal.FormatStyle;
|
||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.id.enhanced.SequenceStyleGenerator;
|
||||
import org.hibernate.internal.CoreMessageLogger;
|
||||
@ -148,7 +148,7 @@ protected IntegralDataTypeHolder generateHolder(final SessionImplementor session
|
||||
final SqlStatementLogger statementLogger = session.getFactory().getServiceRegistry()
|
||||
.getService( JdbcServices.class )
|
||||
.getSqlStatementLogger();
|
||||
final SessionEventsManager statsCollector = session.getSessionEventsManager();
|
||||
final SessionEventListenerManager listeners = session.getEventListenerManager();
|
||||
|
||||
return session.getTransactionCoordinator().getTransaction().createIsolationDelegate().delegateWork(
|
||||
new AbstractReturningWork<IntegralDataTypeHolder>() {
|
||||
@ -160,9 +160,9 @@ public IntegralDataTypeHolder execute(Connection connection) throws SQLException
|
||||
// The loop ensures atomicity of the select + update even for no transaction or
|
||||
// read committed isolation level
|
||||
do {
|
||||
final PreparedStatement qps = prepareStatement( connection, query, statementLogger, statsCollector );
|
||||
final PreparedStatement qps = prepareStatement( connection, query, statementLogger, listeners );
|
||||
try {
|
||||
ResultSet rs = executeQuery( qps, statsCollector );
|
||||
ResultSet rs = executeQuery( qps, listeners );
|
||||
if ( !rs.next() ) {
|
||||
String err = "could not read a hi value - you need to populate the table: " + tableName;
|
||||
LOG.error(err);
|
||||
@ -179,11 +179,11 @@ public IntegralDataTypeHolder execute(Connection connection) throws SQLException
|
||||
qps.close();
|
||||
}
|
||||
|
||||
final PreparedStatement ups = prepareStatement( connection, update, statementLogger, statsCollector );
|
||||
final PreparedStatement ups = prepareStatement( connection, update, statementLogger, listeners );
|
||||
try {
|
||||
value.copy().increment().bind( ups, 1 );
|
||||
value.bind( ups, 2 );
|
||||
rows = executeUpdate( ups, statsCollector );
|
||||
rows = executeUpdate( ups, listeners );
|
||||
}
|
||||
catch (SQLException sqle) {
|
||||
LOG.error(LOG.unableToUpdateHiValue(tableName), sqle);
|
||||
@ -205,7 +205,7 @@ private PreparedStatement prepareStatement(
|
||||
Connection connection,
|
||||
String sql,
|
||||
SqlStatementLogger statementLogger,
|
||||
SessionEventsManager statsCollector) throws SQLException {
|
||||
SessionEventListenerManager statsCollector) throws SQLException {
|
||||
statementLogger.logStatement( sql, FormatStyle.BASIC.getFormatter() );
|
||||
try {
|
||||
statsCollector.jdbcPrepareStatementStart();
|
||||
@ -216,7 +216,7 @@ private PreparedStatement prepareStatement(
|
||||
}
|
||||
}
|
||||
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeUpdate();
|
||||
@ -227,7 +227,7 @@ private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollec
|
||||
|
||||
}
|
||||
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeQuery();
|
||||
|
@ -45,7 +45,7 @@
|
||||
import org.hibernate.engine.jdbc.internal.FormatStyle;
|
||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.id.Configurable;
|
||||
import org.hibernate.id.IdentifierGeneratorHelper;
|
||||
@ -467,7 +467,7 @@ public synchronized Serializable generate(final SessionImplementor session, Obje
|
||||
final SqlStatementLogger statementLogger = session.getFactory().getServiceRegistry()
|
||||
.getService( JdbcServices.class )
|
||||
.getSqlStatementLogger();
|
||||
final SessionEventsManager statsCollector = session.getSessionEventsManager();
|
||||
final SessionEventListenerManager statsCollector = session.getEventListenerManager();
|
||||
|
||||
return optimizer.generate(
|
||||
new AccessCallback() {
|
||||
@ -552,7 +552,7 @@ private PreparedStatement prepareStatement(
|
||||
Connection connection,
|
||||
String sql,
|
||||
SqlStatementLogger statementLogger,
|
||||
SessionEventsManager statsCollector) throws SQLException {
|
||||
SessionEventListenerManager statsCollector) throws SQLException {
|
||||
statementLogger.logStatement( sql, FormatStyle.BASIC.getFormatter() );
|
||||
try {
|
||||
statsCollector.jdbcPrepareStatementStart();
|
||||
@ -563,7 +563,7 @@ private PreparedStatement prepareStatement(
|
||||
}
|
||||
}
|
||||
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeUpdate();
|
||||
@ -574,7 +574,7 @@ private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollec
|
||||
|
||||
}
|
||||
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeQuery();
|
||||
|
@ -37,7 +37,7 @@
|
||||
import org.hibernate.engine.jdbc.internal.FormatStyle;
|
||||
import org.hibernate.engine.jdbc.spi.JdbcServices;
|
||||
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.id.IdentifierGenerationException;
|
||||
import org.hibernate.id.IdentifierGeneratorHelper;
|
||||
@ -121,7 +121,7 @@ public AccessCallback buildCallback(final SessionImplementor session) {
|
||||
final SqlStatementLogger statementLogger = session.getFactory().getServiceRegistry()
|
||||
.getService( JdbcServices.class )
|
||||
.getSqlStatementLogger();
|
||||
final SessionEventsManager statsCollector = session.getSessionEventsManager();
|
||||
final SessionEventListenerManager statsCollector = session.getEventListenerManager();
|
||||
|
||||
return new AccessCallback() {
|
||||
@Override
|
||||
@ -185,7 +185,7 @@ private PreparedStatement prepareStatement(
|
||||
Connection connection,
|
||||
String sql,
|
||||
SqlStatementLogger statementLogger,
|
||||
SessionEventsManager statsCollector) throws SQLException {
|
||||
SessionEventListenerManager statsCollector) throws SQLException {
|
||||
statementLogger.logStatement( sql, FormatStyle.BASIC.getFormatter() );
|
||||
try {
|
||||
statsCollector.jdbcPrepareStatementStart();
|
||||
@ -196,7 +196,7 @@ private PreparedStatement prepareStatement(
|
||||
}
|
||||
}
|
||||
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private int executeUpdate(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeUpdate();
|
||||
@ -207,7 +207,7 @@ private int executeUpdate(PreparedStatement ps, SessionEventsManager statsCollec
|
||||
|
||||
}
|
||||
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventsManager statsCollector) throws SQLException {
|
||||
private ResultSet executeQuery(PreparedStatement ps, SessionEventListenerManager statsCollector) throws SQLException {
|
||||
try {
|
||||
statsCollector.jdbcExecuteStatementStart();
|
||||
return ps.executeQuery();
|
||||
|
@ -35,7 +35,7 @@
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.SQLQuery;
|
||||
import org.hibernate.ScrollableResults;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.SessionException;
|
||||
import org.hibernate.SharedSessionContract;
|
||||
import org.hibernate.cache.spi.CacheKey;
|
||||
@ -260,13 +260,13 @@ public JdbcConnectionAccess getJdbcConnectionAccess() {
|
||||
if ( jdbcConnectionAccess == null ) {
|
||||
if ( MultiTenancyStrategy.NONE == factory.getSettings().getMultiTenancyStrategy() ) {
|
||||
jdbcConnectionAccess = new NonContextualJdbcConnectionAccess(
|
||||
getSessionEventsManager(),
|
||||
getEventListenerManager(),
|
||||
factory.getServiceRegistry().getService( ConnectionProvider.class )
|
||||
);
|
||||
}
|
||||
else {
|
||||
jdbcConnectionAccess = new ContextualJdbcConnectionAccess(
|
||||
getSessionEventsManager(),
|
||||
getEventListenerManager(),
|
||||
factory.getServiceRegistry().getService( MultiTenantConnectionProvider.class )
|
||||
);
|
||||
}
|
||||
@ -284,11 +284,11 @@ public UUID getSessionIdentifier() {
|
||||
}
|
||||
|
||||
private static class NonContextualJdbcConnectionAccess implements JdbcConnectionAccess, Serializable {
|
||||
private final SessionEventsListener listener;
|
||||
private final SessionEventListener listener;
|
||||
private final ConnectionProvider connectionProvider;
|
||||
|
||||
private NonContextualJdbcConnectionAccess(
|
||||
SessionEventsListener listener,
|
||||
SessionEventListener listener,
|
||||
ConnectionProvider connectionProvider) {
|
||||
this.listener = listener;
|
||||
this.connectionProvider = connectionProvider;
|
||||
@ -323,11 +323,11 @@ public boolean supportsAggressiveRelease() {
|
||||
}
|
||||
|
||||
private class ContextualJdbcConnectionAccess implements JdbcConnectionAccess, Serializable {
|
||||
private final SessionEventsListener listener;
|
||||
private final SessionEventListener listener;
|
||||
private final MultiTenantConnectionProvider connectionProvider;
|
||||
|
||||
private ContextualJdbcConnectionAccess(
|
||||
SessionEventsListener listener,
|
||||
SessionEventListener listener,
|
||||
MultiTenantConnectionProvider connectionProvider) {
|
||||
this.listener = listener;
|
||||
this.connectionProvider = connectionProvider;
|
||||
|
@ -59,7 +59,7 @@
|
||||
import org.hibernate.QueryException;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionBuilder;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.SessionFactoryObserver;
|
||||
import org.hibernate.engine.spi.CacheImplementor;
|
||||
@ -1587,7 +1587,7 @@ static class SessionBuilderImpl implements SessionBuilderImplementor {
|
||||
private boolean autoJoinTransactions = true;
|
||||
private boolean flushBeforeCompletion;
|
||||
private String tenantIdentifier;
|
||||
private List<SessionEventsListener> listeners;
|
||||
private List<SessionEventListener> listeners;
|
||||
|
||||
SessionBuilderImpl(SessionFactoryImpl sessionFactory) {
|
||||
this.sessionFactory = sessionFactory;
|
||||
@ -1628,8 +1628,8 @@ public Session openSession() {
|
||||
tenantIdentifier
|
||||
);
|
||||
|
||||
for ( SessionEventsListener listener : listeners ) {
|
||||
session.getSessionEventsManager().addListener( listener );
|
||||
for ( SessionEventListener listener : listeners ) {
|
||||
session.getEventListenerManager().addListener( listener );
|
||||
}
|
||||
|
||||
return session;
|
||||
@ -1690,7 +1690,7 @@ public SessionBuilder tenantIdentifier(String tenantIdentifier) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SessionBuilder eventListeners(SessionEventsListener... listeners) {
|
||||
public SessionBuilder eventListeners(SessionEventListener... listeners) {
|
||||
Collections.addAll( this.listeners, listeners );
|
||||
return this;
|
||||
}
|
||||
|
@ -73,7 +73,7 @@
|
||||
import org.hibernate.ScrollableResults;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionBuilder;
|
||||
import org.hibernate.SessionEventsListener;
|
||||
import org.hibernate.SessionEventListener;
|
||||
import org.hibernate.SessionException;
|
||||
import org.hibernate.SharedSessionBuilder;
|
||||
import org.hibernate.SimpleNaturalIdLoadAccess;
|
||||
@ -84,7 +84,7 @@
|
||||
import org.hibernate.UnresolvableObjectException;
|
||||
import org.hibernate.collection.spi.PersistentCollection;
|
||||
import org.hibernate.criterion.NaturalIdentifier;
|
||||
import org.hibernate.engine.internal.SessionEventsManagerImpl;
|
||||
import org.hibernate.engine.internal.SessionEventListenerManagerImpl;
|
||||
import org.hibernate.engine.internal.StatefulPersistenceContext;
|
||||
import org.hibernate.engine.jdbc.LobCreator;
|
||||
import org.hibernate.engine.jdbc.NonContextualLobCreator;
|
||||
@ -210,6 +210,8 @@ public final class SessionImpl extends AbstractSessionImpl implements EventSourc
|
||||
private final transient boolean isTransactionCoordinatorShared;
|
||||
private transient TransactionObserver transactionObserver;
|
||||
|
||||
private SessionEventListenerManagerImpl sessionEventsManager = new SessionEventListenerManagerImpl();
|
||||
|
||||
/**
|
||||
* Constructor used for openSession(...) processing, as well as construction
|
||||
* of sessions for getCurrentSession().
|
||||
@ -349,7 +351,7 @@ public Connection close() throws HibernateException {
|
||||
if ( factory.getStatistics().isStatisticsEnabled() ) {
|
||||
factory.getStatisticsImplementor().closeSession();
|
||||
}
|
||||
getSessionEventsManager().end();
|
||||
getEventListenerManager().end();
|
||||
|
||||
try {
|
||||
if ( !isTransactionCoordinatorShared ) {
|
||||
@ -627,8 +629,14 @@ public void afterTransactionCompletion(TransactionImplementor hibernateTransacti
|
||||
persistenceContext.afterTransactionCompletion();
|
||||
actionQueue.afterTransactionCompletion( successful );
|
||||
|
||||
getSessionEventsManager().transactionCompletion( successful );
|
||||
interceptor.afterTransactionCompletion( hibernateTransaction );
|
||||
getEventListenerManager().transactionCompletion( successful );
|
||||
|
||||
try {
|
||||
interceptor.afterTransactionCompletion( hibernateTransaction );
|
||||
}
|
||||
catch (Throwable t) {
|
||||
LOG.exceptionInAfterTransactionCompletionInterceptor( t );
|
||||
}
|
||||
|
||||
if ( autoClear ) {
|
||||
internalClear();
|
||||
@ -645,50 +653,44 @@ public String onPrepareStatement(String sql) {
|
||||
return sql;
|
||||
}
|
||||
|
||||
private SessionEventsManagerImpl sessionEventsManager;
|
||||
|
||||
@Override
|
||||
public SessionEventsManagerImpl getSessionEventsManager() {
|
||||
if ( sessionEventsManager == null ) {
|
||||
sessionEventsManager = new SessionEventsManagerImpl();
|
||||
}
|
||||
|
||||
public SessionEventListenerManagerImpl getEventListenerManager() {
|
||||
return sessionEventsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addEventsListeners(SessionEventsListener... listeners) {
|
||||
getSessionEventsManager().addListener( listeners );
|
||||
public void addEventListeners(SessionEventListener... listeners) {
|
||||
getEventListenerManager().addListener( listeners );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPrepareStatement() {
|
||||
getSessionEventsManager().jdbcPrepareStatementStart();
|
||||
getEventListenerManager().jdbcPrepareStatementStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endPrepareStatement() {
|
||||
getSessionEventsManager().jdbcPrepareStatementEnd();
|
||||
getEventListenerManager().jdbcPrepareStatementEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startStatementExecution() {
|
||||
getSessionEventsManager().jdbcExecuteStatementStart();
|
||||
getEventListenerManager().jdbcExecuteStatementStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endStatementExecution() {
|
||||
getSessionEventsManager().jdbcExecuteStatementEnd();
|
||||
getEventListenerManager().jdbcExecuteStatementEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startBatchExecution() {
|
||||
getSessionEventsManager().jdbcExecuteBatchStart();
|
||||
getEventListenerManager().jdbcExecuteBatchStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endBatchExecution() {
|
||||
getSessionEventsManager().jdbcExecuteBatchEnd();
|
||||
getEventListenerManager().jdbcExecuteBatchEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2402,7 +2404,7 @@ public SharedSessionBuilder flushBeforeCompletion(boolean flushBeforeCompletion)
|
||||
}
|
||||
|
||||
@Override
|
||||
public SharedSessionBuilder eventListeners(SessionEventsListener... listeners) {
|
||||
public SharedSessionBuilder eventListeners(SessionEventListener... listeners) {
|
||||
super.eventListeners( listeners );
|
||||
return this;
|
||||
}
|
||||
|
@ -48,7 +48,7 @@
|
||||
import org.hibernate.UnresolvableObjectException;
|
||||
import org.hibernate.cache.spi.CacheKey;
|
||||
import org.hibernate.collection.spi.PersistentCollection;
|
||||
import org.hibernate.engine.internal.SessionEventsManagerImpl;
|
||||
import org.hibernate.engine.internal.SessionEventListenerManagerImpl;
|
||||
import org.hibernate.engine.internal.StatefulPersistenceContext;
|
||||
import org.hibernate.engine.internal.Versioning;
|
||||
import org.hibernate.engine.query.spi.HQLQueryPlan;
|
||||
@ -59,7 +59,7 @@
|
||||
import org.hibernate.engine.spi.NonFlushedChanges;
|
||||
import org.hibernate.engine.spi.PersistenceContext;
|
||||
import org.hibernate.engine.spi.QueryParameters;
|
||||
import org.hibernate.engine.spi.SessionEventsManager;
|
||||
import org.hibernate.engine.spi.SessionEventListenerManager;
|
||||
import org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl;
|
||||
import org.hibernate.engine.transaction.spi.TransactionCoordinator;
|
||||
import org.hibernate.engine.transaction.spi.TransactionEnvironment;
|
||||
@ -395,12 +395,12 @@ public String onPrepareStatement(String sql) {
|
||||
return sql;
|
||||
}
|
||||
|
||||
private SessionEventsManagerImpl sessionEventsManager;
|
||||
private SessionEventListenerManagerImpl sessionEventsManager;
|
||||
|
||||
@Override
|
||||
public SessionEventsManager getSessionEventsManager() {
|
||||
public SessionEventListenerManager getEventListenerManager() {
|
||||
if ( sessionEventsManager == null ) {
|
||||
sessionEventsManager = new SessionEventsManagerImpl();
|
||||
sessionEventsManager = new SessionEventListenerManagerImpl();
|
||||
}
|
||||
return sessionEventsManager;
|
||||
}
|
||||
|
@ -16,4 +16,4 @@ log4j.logger.org.hibernate.hql.internal.ast=debug
|
||||
|
||||
log4j.logger.org.hibernate.sql.ordering.antlr=debug
|
||||
|
||||
log4j.logger.org.hibernate.engine.internal.LoggingSessionEventsListener=info
|
||||
log4j.logger.org.hibernate.engine.internal.LoggingSessionEventListener=info
|
Loading…
x
Reference in New Issue
Block a user