Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Forgot to merge the latest other features.
Some refactoring should be done
  • Loading branch information
pesse committed Jul 19, 2018
commit 4b7110ecf0980be9eb374f36e0f779d34bde5a8c
13 changes: 8 additions & 5 deletions src/main/java/org/utplsql/cli/DataSourceProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

import com.zaxxer.hikari.HikariDataSource;
import org.utplsql.api.EnvironmentVariableUtil;
import org.utplsql.cli.datasource.TestedDataSourceProvider;

import javax.sql.DataSource;
import java.io.File;
import java.sql.SQLException;

/** Helper class to give you a ready-to-use datasource
*
Expand All @@ -13,19 +15,20 @@
public class DataSourceProvider {

static {
String oracleHome = EnvironmentVariableUtil.getEnvValue("ORACLE_HOME");
if (oracleHome != null) {
String oracleHome = System.getenv("ORACLE_HOME");
if (oracleHome != null && System.getProperty("oracle.net.tns_admin") == null) {
System.setProperty("oracle.net.tns_admin",
String.join(File.separator, oracleHome, "NETWORK", "ADMIN"));
}
}

public static DataSource getDataSource(ConnectionInfo info, int maxConnections ) {
public static DataSource getDataSource(ConnectionInfo info, int maxConnections ) throws SQLException {

requireOjdbc();

HikariDataSource pds = new HikariDataSource();
pds.setJdbcUrl("jdbc:oracle:thin:" + info.getConnectionString());
ConnectionConfig config = new ConnectionConfig(info.getConnectionString());

HikariDataSource pds = new TestedDataSourceProvider(config).getDataSource();
pds.setAutoCommit(false);
pds.setMaximumPoolSize(maxConnections);
return pds;
Expand Down
13 changes: 7 additions & 6 deletions src/main/java/org/utplsql/cli/ReportersCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,15 @@ private ConnectionInfo getConnectionInfo() {
@Override
public int run() {

DataSource ds = DataSourceProvider.getDataSource(getConnectionInfo(), 1);
try (Connection con = ds.getConnection() ) {
try {
DataSource ds = DataSourceProvider.getDataSource(getConnectionInfo(), 1);
try (Connection con = ds.getConnection()) {

ReporterFactory reporterFactory = ReporterFactoryProvider.createReporterFactory(con);
ReporterFactory reporterFactory = ReporterFactoryProvider.createReporterFactory(con);

writeReporters(ReporterInspector.create(reporterFactory, con).getReporterInfos(), System.out);
}
catch ( Exception e ) {
writeReporters(ReporterInspector.create(reporterFactory, con).getReporterInfos(), System.out);
}
} catch (Exception e) {
e.printStackTrace();
return 1;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,18 @@
import java.util.ArrayList;
import java.util.List;

public class DataSourceProvider {
public class TestedDataSourceProvider {

interface ConnectStringPossibility {
String getConnectString(ConnectionConfig config);
String getMaskedConnectString(ConnectionConfig config);
}

static {
String oracleHome = System.getenv("ORACLE_HOME");
if (oracleHome != null && System.getProperty("oracle.net.tns_admin") == null) {
System.setProperty("oracle.net.tns_admin",
String.join(File.separator, oracleHome, "NETWORK", "ADMIN"));
}
}

private final ConnectionConfig config;
private List<ConnectStringPossibility> possibilities = new ArrayList<>();

public DataSourceProvider(ConnectionConfig config) {
public TestedDataSourceProvider(ConnectionConfig config) {
this.config = config;

possibilities.add(new ThickConnectStringPossibility());
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/org/utplsql/cli/DataSourceProviderIT.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.utplsql.cli;

import org.junit.jupiter.api.Test;
import org.utplsql.cli.datasource.DataSourceProvider;
import org.utplsql.cli.datasource.TestedDataSourceProvider;

import javax.sql.DataSource;
import java.io.IOException;
Expand All @@ -14,9 +14,9 @@ public class DataSourceProviderIT {
@Test
public void connectToDatabase() throws IOException, SQLException {

ConnectionConfig config = new ConnectionConfig(RunCommandTestHelper.getConnectionString());
ConnectionConfig config = new ConnectionConfig(TestHelper.getConnectionString());

DataSource dataSource = new DataSourceProvider(config).getDataSource();
DataSource dataSource = new TestedDataSourceProvider(config).getDataSource();

assertNotNull(dataSource);
}
Expand Down