Skip to content

Commit c3d52fd

Browse files
committed
minimized creation of DB log delegate objects, added StatementWithLogger
* SQL logging delegates are now only created if logging is enabled * Disabled SQL logging for dao and integration tests, can be enabled with constants in dev.dsf.bpe.dao.AbstractDbTest and dev.dsf.fhir.dao.AbstractDbTest * Added missing SQL logging delegate config for Operaton data source * Some code cleanup
1 parent 4ddc24c commit c3d52fd

12 files changed

Lines changed: 389 additions & 58 deletions

File tree

dsf-bpe/dsf-bpe-server/src/main/java/dev/dsf/bpe/spring/config/DaoConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public DataSource dataSource()
5050
dataSource.setTestOnBorrow(true);
5151
dataSource.setValidationQuery("SELECT 1");
5252

53-
return new DataSourceWithLogger(propertiesConfig.getDebugLogMessageDbStatement(), dataSource);
53+
return propertiesConfig.getDebugLogMessageDbStatement() ? new DataSourceWithLogger(dataSource) : dataSource;
5454
}
5555

5656
private String toString(char[] password)

dsf-bpe/dsf-bpe-server/src/main/java/dev/dsf/bpe/spring/config/OperatonConfig.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import java.io.IOException;
1919
import java.util.List;
2020

21+
import javax.sql.DataSource;
22+
2123
import org.apache.commons.dbcp2.BasicDataSource;
2224
import org.operaton.bpm.engine.ProcessEngine;
2325
import org.operaton.bpm.engine.impl.jobexecutor.DefaultJobExecutor;
@@ -41,6 +43,7 @@
4143
import dev.dsf.bpe.engine.MultiVersionSpringProcessEngineConfiguration;
4244
import dev.dsf.bpe.listener.DebugLoggingBpmnParseListener;
4345
import dev.dsf.bpe.listener.DefaultBpmnParseListener;
46+
import dev.dsf.common.db.logging.DataSourceWithLogger;
4447

4548
@Configuration
4649
public class OperatonConfig
@@ -70,7 +73,7 @@ public TransactionAwareDataSourceProxy transactionAwareDataSource()
7073
}
7174

7275
@Bean
73-
public BasicDataSource engineDataSource()
76+
public DataSource engineDataSource()
7477
{
7578
BasicDataSource dataSource = new BasicDataSource();
7679
dataSource.setDriverClassName(Driver.class.getName());
@@ -80,7 +83,8 @@ public BasicDataSource engineDataSource()
8083

8184
dataSource.setTestOnBorrow(true);
8285
dataSource.setValidationQuery("SELECT 1");
83-
return dataSource;
86+
87+
return propertiesConfig.getDebugLogMessageDbStatement() ? new DataSourceWithLogger(dataSource) : dataSource;
8488
}
8589

8690
private String toString(char[] password)

dsf-bpe/dsf-bpe-server/src/test/java/dev/dsf/bpe/dao/AbstractDbTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public abstract class AbstractDbTest
3333
SLF4JBridgeHandler.install();
3434
}
3535

36-
protected static final boolean LOG_DB_STATEMENTS = true;
36+
protected static final boolean LOG_DB_STATEMENTS = false; /* enable to see SQL statements in log output */
3737

3838
protected static final String BPE_CHANGE_LOG_FILE = "bpe/db/db.changelog.xml";
3939

@@ -81,7 +81,7 @@ public static DataSource createBpeDefaultDataSource(String host, int port, Strin
8181
dataSource.setTestOnBorrow(true);
8282
dataSource.setValidationQuery("SELECT 1");
8383

84-
return new DataSourceWithLogger(LOG_DB_STATEMENTS, dataSource);
84+
return LOG_DB_STATEMENTS ? new DataSourceWithLogger(dataSource) : dataSource;
8585
}
8686

8787
public static DataSource createBpeCamundaDataSource(String host, int port, String databaseName)
@@ -96,7 +96,7 @@ public static DataSource createBpeCamundaDataSource(String host, int port, Strin
9696
dataSource.setTestOnBorrow(true);
9797
dataSource.setValidationQuery("SELECT 1");
9898

99-
return new DataSourceWithLogger(LOG_DB_STATEMENTS, dataSource);
99+
return LOG_DB_STATEMENTS ? new DataSourceWithLogger(dataSource) : dataSource;
100100
}
101101

102102
public static DataSource createFhirDefaultDataSource(String host, int port, String databaseName)
@@ -111,7 +111,7 @@ public static DataSource createFhirDefaultDataSource(String host, int port, Stri
111111
dataSource.setTestOnBorrow(true);
112112
dataSource.setValidationQuery("SELECT 1");
113113

114-
return new DataSourceWithLogger(LOG_DB_STATEMENTS, dataSource);
114+
return LOG_DB_STATEMENTS ? new DataSourceWithLogger(dataSource) : dataSource;
115115
}
116116

117117
public static DataSource createFhirPermanentDeleteDataSource(String host, int port, String databaseName)
@@ -126,6 +126,6 @@ public static DataSource createFhirPermanentDeleteDataSource(String host, int po
126126
dataSource.setTestOnBorrow(true);
127127
dataSource.setValidationQuery("SELECT 1");
128128

129-
return new DataSourceWithLogger(LOG_DB_STATEMENTS, dataSource);
129+
return LOG_DB_STATEMENTS ? new DataSourceWithLogger(dataSource) : dataSource;
130130
}
131131
}

dsf-bpe/dsf-bpe-server/src/test/java/dev/dsf/bpe/integration/AbstractIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ private static JettyServer startFhirServer(ServerSocketChannel statusConnectorCh
272272
initParameters.put("dev.dsf.fhir.db.user.permanent.delete.group", FHIR_DATABASE_DELETE_USERS_GROUP);
273273
initParameters.put("dev.dsf.fhir.db.user.permanent.delete.username", FHIR_DATABASE_DELETE_USER);
274274
initParameters.put("dev.dsf.fhir.db.user.permanent.delete.password", FHIR_DATABASE_DELETE_USER_PASSWORD);
275+
initParameters.put("dev.dsf.fhir.debug.log.message.dbStatement", String.valueOf(LOG_DB_STATEMENTS));
275276

276277
initParameters.put("dev.dsf.fhir.server.base.url", baseUrl);
277278
initParameters.put("dev.dsf.fhir.server.organization.identifier.value", "Test_Organization");
@@ -370,6 +371,7 @@ private static JettyServer startBpeServer(ServerSocketChannel statusConnectorCha
370371
initParameters.put("dev.dsf.bpe.db.user.password", BPE_DATABASE_USER_PASSWORD);
371372
initParameters.put("dev.dsf.bpe.db.user.engine.username", BPE_DATABASE_ENGINE_USER);
372373
initParameters.put("dev.dsf.bpe.db.user.engine.password", BPE_DATABASE_ENGINE_USER_PASSWORD);
374+
initParameters.put("dev.dsf.bpe.debug.log.message.dbStatement", String.valueOf(LOG_DB_STATEMENTS));
373375

374376
initParameters.put("dev.dsf.bpe.fhir.client.certificate", certificates.getClientCertificateFile().toString());
375377
initParameters.put("dev.dsf.bpe.fhir.client.certificate.private.key",

dsf-common/dsf-common-db/src/main/java/dev/dsf/common/db/logging/ConnectionWithLogger.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,10 @@
3737

3838
public class ConnectionWithLogger implements Connection
3939
{
40-
private final boolean loggerEnabled;
41-
4240
private final Connection delegate;
4341

44-
public ConnectionWithLogger(boolean loggerEnabled, Connection delegate)
42+
public ConnectionWithLogger(Connection delegate)
4543
{
46-
this.loggerEnabled = loggerEnabled;
4744
this.delegate = delegate;
4845
}
4946

@@ -62,13 +59,13 @@ public boolean isWrapperFor(Class<?> iface) throws SQLException
6259
@Override
6360
public Statement createStatement() throws SQLException
6461
{
65-
return delegate.createStatement();
62+
return new StatementWithLogger(delegate.createStatement());
6663
}
6764

6865
@Override
6966
public PreparedStatement prepareStatement(String sql) throws SQLException
7067
{
71-
return new PreparedStatementWithLogger(loggerEnabled, delegate.prepareStatement(sql));
68+
return new PreparedStatementWithLogger(delegate.prepareStatement(sql));
7269
}
7370

7471
@Override
@@ -176,15 +173,14 @@ public void clearWarnings() throws SQLException
176173
@Override
177174
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
178175
{
179-
return delegate.createStatement(resultSetType, resultSetConcurrency);
176+
return new StatementWithLogger(delegate.createStatement(resultSetType, resultSetConcurrency));
180177
}
181178

182179
@Override
183180
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
184181
throws SQLException
185182
{
186-
return new PreparedStatementWithLogger(loggerEnabled,
187-
delegate.prepareStatement(sql, resultSetType, resultSetConcurrency));
183+
return new PreparedStatementWithLogger(delegate.prepareStatement(sql, resultSetType, resultSetConcurrency));
188184
}
189185

190186
@Override
@@ -245,14 +241,15 @@ public void releaseSavepoint(Savepoint savepoint) throws SQLException
245241
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
246242
throws SQLException
247243
{
248-
return delegate.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
244+
return new StatementWithLogger(
245+
delegate.createStatement(resultSetType, resultSetConcurrency, resultSetHoldability));
249246
}
250247

251248
@Override
252249
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency,
253250
int resultSetHoldability) throws SQLException
254251
{
255-
return new PreparedStatementWithLogger(loggerEnabled,
252+
return new PreparedStatementWithLogger(
256253
delegate.prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability));
257254
}
258255

@@ -266,19 +263,19 @@ public CallableStatement prepareCall(String sql, int resultSetType, int resultSe
266263
@Override
267264
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
268265
{
269-
return new PreparedStatementWithLogger(loggerEnabled, delegate.prepareStatement(sql, autoGeneratedKeys));
266+
return new PreparedStatementWithLogger(delegate.prepareStatement(sql, autoGeneratedKeys));
270267
}
271268

272269
@Override
273270
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
274271
{
275-
return new PreparedStatementWithLogger(loggerEnabled, delegate.prepareStatement(sql, columnIndexes));
272+
return new PreparedStatementWithLogger(delegate.prepareStatement(sql, columnIndexes));
276273
}
277274

278275
@Override
279276
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
280277
{
281-
return new PreparedStatementWithLogger(loggerEnabled, delegate.prepareStatement(sql, columnNames));
278+
return new PreparedStatementWithLogger(delegate.prepareStatement(sql, columnNames));
282279
}
283280

284281
@Override

dsf-common/dsf-common-db/src/main/java/dev/dsf/common/db/logging/DataSourceWithLogger.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,10 @@
2828

2929
public class DataSourceWithLogger implements DataSource
3030
{
31-
private final boolean loggerEnabled;
32-
3331
private final BasicDataSource delegate;
3432

35-
public DataSourceWithLogger(boolean loggerEnabled, BasicDataSource delegate)
33+
public DataSourceWithLogger(BasicDataSource delegate)
3634
{
37-
this.loggerEnabled = loggerEnabled;
3835
this.delegate = delegate;
3936
}
4037

@@ -59,13 +56,13 @@ public boolean isWrapperFor(Class<?> iface) throws SQLException
5956
@Override
6057
public Connection getConnection() throws SQLException
6158
{
62-
return new ConnectionWithLogger(loggerEnabled, delegate.getConnection());
59+
return new ConnectionWithLogger(delegate.getConnection());
6360
}
6461

6562
@Override
6663
public Connection getConnection(String username, String password) throws SQLException
6764
{
68-
return new ConnectionWithLogger(loggerEnabled, delegate.getConnection(username, password));
65+
return new ConnectionWithLogger(delegate.getConnection(username, password));
6966
}
7067

7168
@Override

dsf-common/dsf-common-db/src/main/java/dev/dsf/common/db/logging/PreparedStatementWithLogger.java

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,26 +45,17 @@
4545
public class PreparedStatementWithLogger implements PreparedStatement
4646
{
4747
private static final Logger logger = LoggerFactory.getLogger(PreparedStatementWithLogger.class);
48-
private final boolean loggerEnabled;
4948

5049
private final PreparedStatement delegate;
5150

52-
public PreparedStatementWithLogger(boolean loggerEnabled, PreparedStatement delegate)
51+
public PreparedStatementWithLogger(PreparedStatement delegate)
5352
{
54-
this.loggerEnabled = loggerEnabled;
5553
this.delegate = delegate;
5654
}
5755

5856
private void logStatement()
5957
{
60-
if (loggerEnabled)
61-
logger.debug("Executing query '{}'", this);
62-
}
63-
64-
private void logStatement(String sql)
65-
{
66-
if (loggerEnabled)
67-
logger.debug("Executing query '{}'", sql);
58+
logger.debug("{}", this);
6859
}
6960

7061
@Override
@@ -76,8 +67,6 @@ public <T> T unwrap(Class<T> iface) throws SQLException
7667
@Override
7768
public ResultSet executeQuery(String sql) throws SQLException
7869
{
79-
logStatement(sql);
80-
8170
return delegate.executeQuery(sql);
8271
}
8372

@@ -98,8 +87,6 @@ public boolean isWrapperFor(Class<?> iface) throws SQLException
9887
@Override
9988
public int executeUpdate(String sql) throws SQLException
10089
{
101-
logStatement(sql);
102-
10390
return delegate.executeUpdate(sql);
10491
}
10592

@@ -276,8 +263,6 @@ public void setAsciiStream(int parameterIndex, InputStream x, int length) throws
276263
@Override
277264
public boolean execute(String sql) throws SQLException
278265
{
279-
logStatement(sql);
280-
281266
return delegate.execute(sql);
282267
}
283268

@@ -529,8 +514,6 @@ public void setNCharacterStream(int parameterIndex, Reader value, long length) t
529514
@Override
530515
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
531516
{
532-
logStatement(sql);
533-
534517
return delegate.execute(sql, autoGeneratedKeys);
535518
}
536519

@@ -549,8 +532,6 @@ public void setClob(int parameterIndex, Reader reader, long length) throws SQLEx
549532
@Override
550533
public boolean execute(String sql, int[] columnIndexes) throws SQLException
551534
{
552-
logStatement(sql);
553-
554535
return delegate.execute(sql, columnIndexes);
555536
}
556537

@@ -569,8 +550,6 @@ public void setNClob(int parameterIndex, Reader reader, long length) throws SQLE
569550
@Override
570551
public boolean execute(String sql, String[] columnNames) throws SQLException
571552
{
572-
logStatement(sql);
573-
574553
return delegate.execute(sql, columnNames);
575554
}
576555

@@ -667,6 +646,8 @@ public long getLargeMaxRows() throws SQLException
667646
@Override
668647
public long[] executeLargeBatch() throws SQLException
669648
{
649+
logStatement();
650+
670651
return delegate.executeLargeBatch();
671652
}
672653

@@ -751,6 +732,8 @@ public String enquoteLiteral(String val) throws SQLException
751732
@Override
752733
public long executeLargeUpdate() throws SQLException
753734
{
735+
logStatement();
736+
754737
return delegate.executeLargeUpdate();
755738
}
756739

0 commit comments

Comments
 (0)