Skip to content

Commit d8c2ca7

Browse files
committed
HHH-18009 - Consolidate JdbcObserver and ConnectionObserver into JdbcEventHandler
1 parent ef58e15 commit d8c2ca7

24 files changed

+194
-448
lines changed

hibernate-core/src/main/java/org/hibernate/engine/jdbc/batch/internal/BatchImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.hibernate.engine.jdbc.spi.SqlStatementLogger;
2525
import org.hibernate.event.spi.EventManager;
2626
import org.hibernate.event.spi.HibernateMonitoringEvent;
27-
import org.hibernate.resource.jdbc.spi.JdbcObserver;
27+
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
2828
import org.hibernate.resource.jdbc.spi.JdbcSessionOwner;
2929

3030
import static org.hibernate.engine.jdbc.JdbcLogging.JDBC_MESSAGE_LOGGER;
@@ -257,9 +257,8 @@ protected void performExecution() {
257257
);
258258
}
259259

260-
//noinspection deprecation
261260
final JdbcSessionOwner jdbcSessionOwner = jdbcCoordinator.getJdbcSessionOwner();
262-
final JdbcObserver observer = jdbcSessionOwner.getJdbcSessionContext().getObserver();
261+
final JdbcEventHandler eventHandler = jdbcSessionOwner.getJdbcSessionContext().getEventHandler();
263262
try {
264263
getStatementGroup().forEachStatement( (tableName, statementDetails) -> {
265264
final String sql = statementDetails.getSqlString();
@@ -275,12 +274,12 @@ protected void performExecution() {
275274
final EventManager eventManager = jdbcSessionOwner.getEventManager();
276275
final HibernateMonitoringEvent jdbcBatchExecutionEvent = eventManager.beginJdbcBatchExecutionEvent();
277276
try {
278-
observer.jdbcExecuteBatchStart();
277+
eventHandler.jdbcExecuteBatchStart();
279278
rowCounts = statement.executeBatch();
280279
}
281280
finally {
282281
eventManager.completeJdbcBatchExecutionEvent( jdbcBatchExecutionEvent, sql );
283-
observer.jdbcExecuteBatchEnd();
282+
eventHandler.jdbcExecuteBatchEnd();
284283
}
285284
checkRowCounts( rowCounts, statementDetails );
286285
}

hibernate-core/src/main/java/org/hibernate/engine/jdbc/env/internal/JdbcEnvironmentInitiator.java

Lines changed: 5 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.util.StringTokenizer;
1515

1616
import org.hibernate.boot.registry.StandardServiceInitiator;
17-
import org.hibernate.cfg.AvailableSettings;
1817
import org.hibernate.cfg.JdbcSettings;
1918
import org.hibernate.dialect.DatabaseVersion;
2019
import org.hibernate.dialect.Dialect;
@@ -41,7 +40,7 @@
4140
import org.hibernate.jdbc.AbstractReturningWork;
4241
import org.hibernate.jpa.internal.MutableJpaComplianceImpl;
4342
import org.hibernate.jpa.spi.JpaCompliance;
44-
import org.hibernate.resource.jdbc.spi.JdbcObserver;
43+
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
4544
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
4645
import org.hibernate.resource.jdbc.spi.JdbcSessionOwner;
4746
import org.hibernate.resource.jdbc.spi.PhysicalConnectionHandlingMode;
@@ -610,6 +609,7 @@ public Map<String, Object> getConfigurationValues() {
610609
* This is a temporary JdbcSessionOwner for the purpose of passing a connection to the Dialect for initialization.
611610
*/
612611
private static class TemporaryJdbcSessionOwner implements JdbcSessionOwner, JdbcSessionContext {
612+
private static final JdbcEventHandler EMPTY_JDBC_EVENT_HANDLER = new JdbcEventHandler();
613613

614614
private final JdbcConnectionAccess jdbcConnectionAccess;
615615
private final JdbcServices jdbcServices;
@@ -620,7 +620,6 @@ private static class TemporaryJdbcSessionOwner implements JdbcSessionOwner, Jdbc
620620
private final PhysicalConnectionHandlingMode connectionHandlingMode;
621621
private final JpaCompliance jpaCompliance;
622622
private final SqlExceptionHelper sqlExceptionHelper;
623-
private static final EmptyJdbcObserver EMPTY_JDBC_OBSERVER = EmptyJdbcObserver.INSTANCE;
624623
TransactionCoordinator transactionCoordinator;
625624
private final EmptyEventManager eventManager;
626625

@@ -750,9 +749,9 @@ public StatisticsImplementor getStatistics() {
750749
return null;
751750
}
752751

753-
@Override @Deprecated
754-
public JdbcObserver getObserver() {
755-
return EMPTY_JDBC_OBSERVER;
752+
@Override
753+
public JdbcEventHandler getEventHandler() {
754+
return EMPTY_JDBC_EVENT_HANDLER;
756755
}
757756

758757
@Override
@@ -784,60 +783,5 @@ public boolean isActive() {
784783
public SqlExceptionHelper getSqlExceptionHelper() {
785784
return sqlExceptionHelper;
786785
}
787-
788-
private static class EmptyJdbcObserver implements JdbcObserver{
789-
790-
public static final EmptyJdbcObserver INSTANCE = new EmptyJdbcObserver();
791-
792-
@Override
793-
public void jdbcConnectionAcquisitionStart() {
794-
795-
}
796-
797-
@Override
798-
public void jdbcConnectionAcquisitionEnd(Connection connection) {
799-
800-
}
801-
802-
@Override
803-
public void jdbcConnectionReleaseStart() {
804-
805-
}
806-
807-
@Override
808-
public void jdbcConnectionReleaseEnd() {
809-
810-
}
811-
812-
@Override
813-
public void jdbcPrepareStatementStart() {
814-
815-
}
816-
817-
@Override
818-
public void jdbcPrepareStatementEnd() {
819-
820-
}
821-
822-
@Override
823-
public void jdbcExecuteStatementStart() {
824-
825-
}
826-
827-
@Override
828-
public void jdbcExecuteStatementEnd() {
829-
830-
}
831-
832-
@Override
833-
public void jdbcExecuteBatchStart() {
834-
835-
}
836-
837-
@Override
838-
public void jdbcExecuteBatchEnd() {
839-
840-
}
841-
}
842786
}
843787
}

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/JdbcCoordinatorImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,7 @@ public JdbcCoordinatorImpl(
8282
JdbcServices jdbcServices) {
8383
this.isUserSuppliedConnection = userSuppliedConnection != null;
8484

85-
final ResourceRegistry resourceRegistry = new ResourceRegistryStandardImpl(
86-
owner.getJdbcSessionContext().getObserver()
87-
);
85+
final ResourceRegistry resourceRegistry = new ResourceRegistryStandardImpl( owner.getJdbcSessionContext().getEventHandler() );
8886
if ( isUserSuppliedConnection ) {
8987
this.logicalConnection = new LogicalConnectionProvidedImpl( userSuppliedConnection, resourceRegistry );
9088
}

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/MutationStatementPreparerImpl.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.hibernate.engine.jdbc.spi.SqlExceptionHelper;
1717
import org.hibernate.event.spi.EventManager;
1818
import org.hibernate.event.spi.HibernateMonitoringEvent;
19-
import org.hibernate.resource.jdbc.spi.JdbcObserver;
19+
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
2020
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
2121
import org.hibernate.resource.jdbc.spi.JdbcSessionOwner;
2222
import org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor;
@@ -94,21 +94,18 @@ protected StatementPreparationTemplate(String incomingSql) {
9494
public PreparedStatement prepareStatement() {
9595
try {
9696
final PreparedStatement preparedStatement;
97-
//noinspection deprecation
9897
final JdbcSessionOwner jdbcSessionOwner = jdbcCoordinator.getJdbcSessionOwner();
99-
final JdbcObserver observer = jdbcSessionOwner
100-
.getJdbcSessionContext()
101-
.getObserver();
98+
final JdbcEventHandler jdbcEventHandler = jdbcSessionOwner.getJdbcSessionContext().getEventHandler();
10299
final EventManager eventManager = jdbcSessionOwner.getEventManager();
103100
final HibernateMonitoringEvent jdbcPreparedStatementCreation = eventManager.beginJdbcPreparedStatementCreationEvent();
104101
try {
105-
observer.jdbcPrepareStatementStart();
102+
jdbcEventHandler.jdbcPrepareStatementStart();
106103
preparedStatement = doPrepare();
107104
setStatementTimeout( preparedStatement );
108105
}
109106
finally {
110107
eventManager.completeJdbcPreparedStatementCreationEvent( jdbcPreparedStatementCreation, sql );
111-
observer.jdbcPrepareStatementEnd();
108+
jdbcEventHandler.jdbcPrepareStatementEnd();
112109
}
113110
postProcess( preparedStatement );
114111
return preparedStatement;

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/ResultSetReturnImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ private JdbcSessionContext context() {
7878
}
7979

8080
private void jdbcExecuteStatementEnd() {
81-
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getObserver().jdbcExecuteStatementEnd();
81+
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getEventHandler().jdbcExecuteStatementEnd();
8282
}
8383

8484
private void jdbcExecuteStatementStart() {
85-
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getObserver().jdbcExecuteStatementStart();
85+
jdbcCoordinator.getJdbcSessionOwner().getJdbcSessionContext().getEventHandler().jdbcExecuteStatementStart();
8686
}
8787

8888
@Override

hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/StatementPreparerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.hibernate.engine.jdbc.spi.StatementPreparer;
2020
import org.hibernate.event.spi.EventManager;
2121
import org.hibernate.event.spi.HibernateMonitoringEvent;
22-
import org.hibernate.resource.jdbc.spi.JdbcObserver;
22+
import org.hibernate.resource.jdbc.spi.JdbcEventHandler;
2323
import org.hibernate.resource.jdbc.spi.JdbcSessionContext;
2424
import org.hibernate.resource.jdbc.spi.JdbcSessionOwner;
2525
import org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor;
@@ -172,7 +172,7 @@ public PreparedStatement prepareStatement() {
172172

173173
final PreparedStatement preparedStatement;
174174
final JdbcSessionOwner jdbcSessionOwner = jdbcCoordinator.getJdbcSessionOwner();
175-
final JdbcObserver observer = jdbcSessionOwner.getJdbcSessionContext().getObserver();
175+
final JdbcEventHandler observer = jdbcSessionOwner.getJdbcSessionContext().getEventHandler();
176176
final EventManager eventManager = jdbcSessionOwner.getEventManager();
177177
final HibernateMonitoringEvent jdbcPreparedStatementCreation = eventManager.beginJdbcPreparedStatementCreationEvent();
178178
try {

hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/ConnectionObserver.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/ConnectionObserverAdapter.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/engine/jdbc/spi/NonDurableConnectionObserver.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

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

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,15 @@
1515
import org.hibernate.persister.entity.EntityPersister;
1616
import org.hibernate.service.JavaServiceLoadable;
1717

18-
@JavaServiceLoadable
19-
@Incubating
2018
/**
2119
* Defines the contract for monitoring low-level events
22-
* involving interactions between the {@link Session} and the database
23-
* or second-level cache.
24-
*
25-
* <p>
26-
* <em>This an incubating API, subject to change.</em>
27-
*
20+
* involving interactions between the {@linkplain org.hibernate.Session}
21+
* and the database or second-level cache.
2822
*
23+
* @apiNote This an incubating API, subject to change.
2924
*/
25+
@JavaServiceLoadable
26+
@Incubating
3027
public interface EventManager {
3128
HibernateMonitoringEvent beginSessionOpenEvent();
3229

0 commit comments

Comments
 (0)