Skip to content

Commit 5b99f36

Browse files
authored
Merge pull request #158 from utPLSQL/feature/no_connection_pool
Remove HikariCP
2 parents 7725326 + 8c99900 commit 5b99f36

File tree

5 files changed

+42
-28
lines changed

5 files changed

+42
-28
lines changed

pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,6 @@
3939
</exclusion>
4040
</exclusions>
4141
</dependency>
42-
<dependency>
43-
<groupId>com.zaxxer</groupId>
44-
<artifactId>HikariCP</artifactId>
45-
<version>3.3.1</version>
46-
<scope>compile</scope>
47-
</dependency>
4842
<dependency>
4943
<groupId>javax.xml.bind</groupId>
5044
<artifactId>jaxb-api</artifactId>

src/main/java/org/utplsql/cli/LoggerConfiguration.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
77
import ch.qos.logback.classic.spi.ILoggingEvent;
88
import ch.qos.logback.core.ConsoleAppender;
9-
import com.zaxxer.hikari.HikariDataSource;
109
import org.slf4j.LoggerFactory;
1110

1211
public class LoggerConfiguration {
@@ -39,7 +38,6 @@ private static void configureSilent() {
3938

4039
private static void configureInfo() {
4140
setRootLoggerLevel(Level.INFO);
42-
muteHikariLogger();
4341
setSingleConsoleAppenderWithLayout("%msg%n");
4442
}
4543

@@ -53,10 +51,6 @@ private static void setRootLoggerLevel(Level level) {
5351
root.setLevel(level);
5452
}
5553

56-
private static void muteHikariLogger() {
57-
((Logger) LoggerFactory.getLogger(HikariDataSource.class)).setLevel(Level.OFF);
58-
}
59-
6054
private static void setSingleConsoleAppenderWithLayout(String patternLayout) {
6155
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
6256
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();

src/main/java/org/utplsql/cli/RunAction.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.utplsql.cli;
22

3-
import com.zaxxer.hikari.HikariDataSource;
43
import org.slf4j.Logger;
54
import org.slf4j.LoggerFactory;
65
import org.utplsql.api.*;
@@ -59,13 +58,13 @@ public int doRun() throws OracleCreateStatmenetStuckException {
5958
init();
6059
outputMainInformation();
6160

62-
HikariDataSource dataSource = null;
61+
DataSource dataSource = null;
6362
int returnCode = 0;
6463
try {
6564

6665
final List<Reporter> reporterList;
6766

68-
dataSource = (HikariDataSource) DataSourceProvider.getDataSource(config.getConnectString(), getReporterManager().getNumberOfReporters() + 2);
67+
dataSource = DataSourceProvider.getDataSource(config.getConnectString(), getReporterManager().getNumberOfReporters() + 2);
6968

7069
initDatabase(dataSource);
7170
reporterList = initReporters(dataSource);
@@ -112,10 +111,6 @@ public int doRun() throws OracleCreateStatmenetStuckException {
112111
} catch (Throwable e) {
113112
e.printStackTrace();
114113
returnCode = Cli.DEFAULT_ERROR_CODE;
115-
} finally {
116-
if (dataSource != null) {
117-
dataSource.close();
118-
}
119114
}
120115
return returnCode;
121116
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.utplsql.cli.datasource;
2+
3+
import oracle.jdbc.pool.OracleDataSource;
4+
5+
import java.sql.CallableStatement;
6+
import java.sql.Connection;
7+
import java.sql.SQLException;
8+
9+
public class InitializableOracleDataSource extends OracleDataSource {
10+
11+
private String initSql;
12+
13+
public InitializableOracleDataSource() throws SQLException {
14+
}
15+
16+
@Override
17+
public Connection getConnection() throws SQLException {
18+
Connection con = super.getConnection();
19+
20+
if ( initSql != null && !initSql.isEmpty() ) {
21+
try (CallableStatement stmt = con.prepareCall(initSql)) {
22+
stmt.execute();
23+
}
24+
}
25+
26+
return con;
27+
}
28+
29+
public void setConnectionInitSql( String sql ) {
30+
this.initSql = sql;
31+
}
32+
}

src/main/java/org/utplsql/cli/datasource/TestedDataSourceProvider.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.utplsql.cli.datasource;
22

3-
import com.zaxxer.hikari.HikariDataSource;
3+
import oracle.jdbc.pool.OracleDataSource;
44
import org.slf4j.Logger;
55
import org.slf4j.LoggerFactory;
66
import org.utplsql.api.EnvironmentVariableUtil;
77
import org.utplsql.cli.ConnectionConfig;
88
import org.utplsql.cli.exception.DatabaseConnectionFailed;
99

10+
import javax.sql.DataSource;
1011
import java.sql.Connection;
1112
import java.sql.SQLException;
1213
import java.util.ArrayList;
@@ -35,27 +36,25 @@ public TestedDataSourceProvider(ConnectionConfig config, int maxConnections) {
3536
possibilities.add(new ThinConnectStringPossibility());
3637
}
3738

38-
public HikariDataSource getDataSource() throws SQLException {
39+
public DataSource getDataSource() throws SQLException {
3940

40-
HikariDataSource ds = new HikariDataSource();
41-
ds.setAutoCommit(false);
42-
ds.setMaximumPoolSize(maxConnections);
41+
InitializableOracleDataSource ds = new InitializableOracleDataSource();
4342

4443
setInitSqlFrom_NLS_LANG(ds);
4544
setThickOrThinJdbcUrl(ds);
4645

4746
return ds;
4847
}
4948

50-
private void setThickOrThinJdbcUrl(HikariDataSource ds) throws SQLException {
49+
private void setThickOrThinJdbcUrl(OracleDataSource ds) throws SQLException {
5150
List<String> errors = new ArrayList<>();
5251
Throwable lastException = null;
5352

54-
ds.setUsername(config.getUser());
53+
ds.setUser(config.getUser());
5554
ds.setPassword(config.getPassword());
5655

5756
for (ConnectStringPossibility possibility : possibilities) {
58-
ds.setJdbcUrl(possibility.getConnectString(config));
57+
ds.setURL(possibility.getConnectString(config));
5958
try (Connection ignored = ds.getConnection()) {
6059
logger.info("Use connection string {}", possibility.getMaskedConnectString(config));
6160
return;
@@ -69,7 +68,7 @@ private void setThickOrThinJdbcUrl(HikariDataSource ds) throws SQLException {
6968
throw new DatabaseConnectionFailed(lastException);
7069
}
7170

72-
private void setInitSqlFrom_NLS_LANG(HikariDataSource ds) {
71+
private void setInitSqlFrom_NLS_LANG(InitializableOracleDataSource ds) {
7372
String nls_lang = EnvironmentVariableUtil.getEnvValue("NLS_LANG");
7473

7574
if (nls_lang != null) {

0 commit comments

Comments
 (0)