This is an automated email from the ASF dual-hosted git repository.

datazuul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git

commit 40b7691359ada14e078b6f934933f12e62bea697
Author: Ralf Eichinger <[email protected]>
AuthorDate: Thu Feb 19 16:31:07 2026 +0100

    externalize generic spring configuration to sample independent classes
---
 .../apache/empire/springboot/DBContextSpring.java  | 54 +++++++---------------
 1 file changed, 16 insertions(+), 38 deletions(-)

diff --git 
a/empire-db-examples/empire-db-example-spring-boot/src/main/java/org/apache/empire/springboot/DBContextSpring.java
 
b/empire-db-examples/empire-db-example-spring-boot/src/main/java/org/apache/empire/springboot/DBContextSpring.java
index f16ead33..5c9bf28a 100644
--- 
a/empire-db-examples/empire-db-example-spring-boot/src/main/java/org/apache/empire/springboot/DBContextSpring.java
+++ 
b/empire-db-examples/empire-db-example-spring-boot/src/main/java/org/apache/empire/springboot/DBContextSpring.java
@@ -3,7 +3,6 @@ package org.apache.empire.springboot;
 import jakarta.annotation.PreDestroy;
 import org.apache.empire.db.context.DBContextBase;
 import org.apache.empire.db.context.DBRollbackManager;
-import org.apache.empire.db.exceptions.EmpireSQLException;
 import org.apache.empire.dbms.DBMSHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,7 +10,6 @@ import org.springframework.jdbc.datasource.DataSourceUtils;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
-import java.sql.SQLException;
 
 public class DBContextSpring extends DBContextBase implements AutoCloseable {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(DBContextSpring.class);
@@ -19,8 +17,6 @@ public class DBContextSpring extends DBContextBase implements 
AutoCloseable {
     private final DataSource dataSource;
     private final DBMSHandler dbmsHandler;
 
-    private final ThreadLocal<Connection> connectionHolder = new 
ThreadLocal<>();
-
     public DBContextSpring(DataSource dataSource, DBMSHandler dbmsHandler) {
         this.dataSource = dataSource;
         this.dbmsHandler = dbmsHandler;
@@ -39,36 +35,22 @@ public class DBContextSpring extends DBContextBase 
implements AutoCloseable {
      * <p>
      * Summary: Spring Boot provided DataSources work with @Transactional as 
long as you use Spring’s access paths or DataSourceUtils and have the 
appropriate TransactionManager active.
      *
-     * @param readOnly if true, the connection will be set to read-only mode.
+     * @param readOnly if true, the connection will be set to read-only mode. 
(ignored)
      * @return a Connection object that is managed by Spring's transaction 
management.
      */
     @Override
     protected Connection getConnection(boolean readOnly) {
-        Connection conn = connectionHolder.get();
-        try {
-            if (conn == null || conn.isClosed()) {
-                conn = DataSourceUtils.getConnection(dataSource);
-                if (readOnly) {
-                    conn.setReadOnly(true);
-                }
-                connectionHolder.set(conn);
-                LOGGER.debug("Obtained Spring-managed connection {}", conn);
-            }
-            return conn;
-        } catch (SQLException e) {
-            throw new EmpireSQLException(dbmsHandler, e);
-        }
+        return DataSourceUtils.getConnection(dataSource);
     }
 
     @Override
-    public Connection getConnection()
-    {
-        return getConnection(false);
+    protected DBRollbackManager getRollbackManager(boolean b) {
+        return null;
     }
 
     @Override
-    protected DBRollbackManager getRollbackManager(boolean b) {
-        return null;
+    public Connection getConnection() {
+        return getConnection(false);
     }
 
     @Override
@@ -77,32 +59,28 @@ public class DBContextSpring extends DBContextBase 
implements AutoCloseable {
     }
 
     @Override
-    public DBMSHandler getDbms() {
-        return this.dbmsHandler;
+    public void commit() {
+        // No-op: Let Spring's TransactionManager handle the commit
     }
 
     @Override
-    public boolean isRollbackHandlingEnabled() {
-        return false;
+    public void rollback() {
+        // No-op: Let Spring's TransactionManager handle the rollback
     }
 
     @Override
-    public void commit() {
-        // No-op: Let Spring's TransactionManager handle the commit
+    protected void closeConnection() {
+        // No-op: Let Spring's TransactionManager handle the connection 
lifecycle
     }
 
     @Override
-    public void rollback() {
-        // No-op: Let Spring's TransactionManager handle the rollback
+    public DBMSHandler getDbms() {
+        return this.dbmsHandler;
     }
 
     @Override
-    protected void closeConnection() {
-        Connection conn = connectionHolder.get();
-        connectionHolder.remove();
-        if (conn != null) {
-            DataSourceUtils.releaseConnection(conn, dataSource);
-        }
+    public boolean isRollbackHandlingEnabled() {
+        return false;
     }
 
     @PreDestroy

Reply via email to