Skip to content

Commit 28c87e9

Browse files
committed
Changed connection string and using cursor buffer get_lines version
1 parent c49b8a1 commit 28c87e9

File tree

3 files changed

+61
-58
lines changed

3 files changed

+61
-58
lines changed

src/main/java/io/github/utplsql/cli/ConnectionInfo.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ public class ConnectionInfo {
1212

1313
/**
1414
* Regex pattern to match following connection strings:
15-
* user/pass@127.0.0.1:1521/sid
16-
* user/pass@127.0.0.1/sid
17-
* user/pass@sid
15+
* user/pass@127.0.0.1:1521/db
16+
* user/pass@127.0.0.1/db
17+
* user/pass@db
1818
*/
1919
private static final String CONNSTR_PATTERN =
2020
"^(?<user>[0-9a-z]+)/(?<pass>[0-9a-z]+)" +
21-
"(?:(?:@(?<host>[^:/]+)?(?::(?<port>[0-9]+))?(?:/(?<sid1>[0-9a-z]+))$)|(?:@(?<sid2>[0-9a-z]+)$))";
21+
"(?:(?:@(?<host>[^:/]+)?(?::(?<port>[0-9]+))?(?:/(?<db1>[0-9a-z]+))$)|(?:@(?<db2>[0-9a-z]+)$))";
2222

2323
private static final String DEFAULT_HOST = "127.0.0.1";
2424
private static final int DEFAULT_PORT = 1521;
@@ -27,7 +27,7 @@ public class ConnectionInfo {
2727
private String password;
2828
private String host;
2929
private int port;
30-
private String sid;
30+
private String db;
3131

3232
public ConnectionInfo() {
3333
}
@@ -41,9 +41,9 @@ public ConnectionInfo parseConnectionString(String connectionString) throws Para
4141

4242
this.setUser(m.group("user"));
4343
this.setPassword(m.group("pass"));
44-
this.setHost(m.group("host") != null ? m.group("host") : "127.0.0.1");
45-
this.setPort(m.group("port") != null ? Integer.parseInt(m.group("port")) : 1521);
46-
this.setSid(m.group("sid1") != null ? m.group("sid1") : m.group("sid2"));
44+
this.setHost(m.group("host") != null ? m.group("host") : DEFAULT_HOST);
45+
this.setPort(m.group("port") != null ? Integer.parseInt(m.group("port")) : DEFAULT_PORT);
46+
this.setDb(m.group("db1") != null ? m.group("db1") : m.group("db2"));
4747

4848
return this;
4949
}
@@ -80,21 +80,21 @@ public void setPort(int port) {
8080
this.port = port;
8181
}
8282

83-
public String getSid() {
84-
return sid;
83+
public String getDb() {
84+
return db;
8585
}
8686

87-
public void setSid(String sid) {
88-
this.sid = sid;
87+
public void setDb(String db) {
88+
this.db = db;
8989
}
9090

9191
public String getConnectionUrl() {
92-
return String.format("jdbc:oracle:thin:@%s:%d:%s", getHost(), getPort(), getSid());
92+
return String.format("jdbc:oracle:thin:@//%s:%d/%s", getHost(), getPort(), getDb());
9393
}
9494

9595
@Override
9696
public String toString() {
97-
return String.format("%s@%s:%d/%s", getUser(), getHost(), getPort(), getSid());
97+
return String.format("%s@%s:%d/%s", getUser(), getHost(), getPort(), getDb());
9898
}
9999

100100
}

src/main/java/io/github/utplsql/cli/RunCommand.java

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import com.beust.jcommander.Parameter;
44
import com.beust.jcommander.Parameters;
5-
import com.sun.deploy.util.StringUtils;
65
import io.github.utplsql.api.OutputBuffer;
76
import io.github.utplsql.api.OutputBufferLines;
87
import io.github.utplsql.api.TestRunner;
9-
import io.github.utplsql.api.utPLSQL;
108
import io.github.utplsql.api.types.BaseReporter;
119
import io.github.utplsql.api.types.DocumentationReporter;
10+
import io.github.utplsql.api.utPLSQL;
1211

1312
import java.sql.Connection;
1413
import java.sql.SQLException;
@@ -25,7 +24,7 @@ public class RunCommand {
2524

2625
@Parameter(
2726
required = true, converter = ConnectionStringConverter.class,
28-
description = "user/pass@[[host][:port]/]sid")
27+
description = "user/pass@[[host][:port]/]db")
2928
private List<ConnectionInfo> connectionInfoList;
3029

3130
@Parameter(
@@ -39,10 +38,10 @@ public ConnectionInfo getConnectionInfo() {
3938
}
4039

4140
public String getTestPaths() {
42-
if (testPaths != null && testPaths.size() > 1)
43-
throw new RuntimeException("Multiple test paths not supported yet.");
41+
// if (testPaths != null && testPaths.size() > 1)
42+
// throw new RuntimeException("Multiple test paths not supported yet.");
4443

45-
return (testPaths == null) ? null : StringUtils.join(testPaths, ",");
44+
return (testPaths == null) ? null : String.join(",", testPaths);
4645
}
4746

4847
public void run() throws Exception {
@@ -64,40 +63,44 @@ public void run() throws Exception {
6463
try {
6564
conn = utPLSQL.getConnection();
6665
new TestRunner().run(conn, testPaths, reporter);
67-
} catch (SQLException e) {
68-
// TODO
69-
e.printStackTrace();
70-
} finally {
71-
if (conn != null)
72-
try { conn.close(); } catch (SQLException ignored) {}
73-
}
74-
});
75-
76-
executorService.submit(() -> {
77-
Connection conn = null;
78-
try {
79-
conn = utPLSQL.getConnection();
80-
OutputBufferLines outputLines;
81-
do {
82-
outputLines = new OutputBuffer(reporter.getReporterId())
83-
.fetchAvailable(conn);
8466

85-
Thread.sleep(500);
67+
OutputBufferLines outputLines = new OutputBuffer(reporter.getReporterId())
68+
.fetchAll(conn);
8669

87-
if (outputLines.getLines().size() > 0)
88-
System.out.println(outputLines.toString());
89-
} while (!outputLines.isFinished());
70+
if (outputLines.getLines().size() > 0)
71+
System.out.println(outputLines.toString());
9072
} catch (SQLException e) {
9173
// TODO
9274
e.printStackTrace();
93-
} catch (InterruptedException ignored) {
94-
// ignored
9575
} finally {
9676
if (conn != null)
9777
try { conn.close(); } catch (SQLException ignored) {}
9878
}
9979
});
10080

81+
// executorService.submit(() -> {
82+
// Connection conn = null;
83+
// try {
84+
// conn = utPLSQL.getConnection();
85+
// OutputBufferLines outputLines;
86+
// do {
87+
// outputLines = new OutputBuffer(reporter.getReporterId())
88+
// .fetchAvailable(conn);
89+
//
90+
// Thread.sleep(500);
91+
//
92+
// if (outputLines.getLines().size() > 0)
93+
// System.out.println(outputLines.toString());
94+
// } while (!outputLines.isFinished());
95+
// } catch (SQLException | InterruptedException e) {
96+
// // TODO
97+
// e.printStackTrace();
98+
// } finally {
99+
// if (conn != null)
100+
// try { conn.close(); } catch (SQLException ignored) {}
101+
// }
102+
// });
103+
101104
executorService.shutdown();
102105
executorService.awaitTermination(60, TimeUnit.MINUTES);
103106
}

src/test/java/io/github/utplsql/cli/ConnectionInfoTest.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@ public class ConnectionInfoTest {
1111

1212
/**
1313
* Regex pattern to match following connection strings:
14-
* user/pass@127.0.0.1:1521/sid
15-
* user/pass@127.0.0.1/sid
16-
* user/pass@sid
14+
* user/pass@127.0.0.1:1521/db
15+
* user/pass@127.0.0.1/db
16+
* user/pass@db
1717
* user/pass
1818
*/
1919

2020
@Test
2121
public void connectionStr_Full() {
2222
try {
23-
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@localhost:3000/sid");
23+
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@localhost:3000/db");
2424
Assert.assertEquals("user", ci.getUser());
2525
Assert.assertEquals("pass", ci.getPassword());
2626
Assert.assertEquals("localhost", ci.getHost());
2727
Assert.assertEquals(3000, ci.getPort());
28-
Assert.assertEquals("sid", ci.getSid());
29-
Assert.assertEquals("user@localhost:3000/sid", ci.toString());
30-
Assert.assertEquals("jdbc:oracle:thin:@localhost:3000:sid", ci.getConnectionUrl());
28+
Assert.assertEquals("db", ci.getDb());
29+
Assert.assertEquals("user@localhost:3000/db", ci.toString());
30+
Assert.assertEquals("jdbc:oracle:thin:@//localhost:3000/db", ci.getConnectionUrl());
3131
} catch (Exception e) {
3232
Assert.fail(e.getMessage());
3333
}
@@ -36,14 +36,14 @@ public void connectionStr_Full() {
3636
@Test
3737
public void connectionStr_WithoutPort() {
3838
try {
39-
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@localhost/sid");
39+
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@localhost/db");
4040
Assert.assertEquals("user", ci.getUser());
4141
Assert.assertEquals("pass", ci.getPassword());
4242
Assert.assertEquals("localhost", ci.getHost());
4343
Assert.assertEquals(1521, ci.getPort());
44-
Assert.assertEquals("sid", ci.getSid());
45-
Assert.assertEquals("user@localhost:1521/sid", ci.toString());
46-
Assert.assertEquals("jdbc:oracle:thin:@localhost:1521:sid", ci.getConnectionUrl());
44+
Assert.assertEquals("db", ci.getDb());
45+
Assert.assertEquals("user@localhost:1521/db", ci.toString());
46+
Assert.assertEquals("jdbc:oracle:thin:@//localhost:1521/db", ci.getConnectionUrl());
4747
} catch (Exception e) {
4848
Assert.fail(e.getMessage());
4949
}
@@ -52,14 +52,14 @@ public void connectionStr_WithoutPort() {
5252
@Test
5353
public void connectionStr_WithoutHostAndPort() {
5454
try {
55-
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@sid");
55+
ConnectionInfo ci = new ConnectionInfo().parseConnectionString("user/pass@db");
5656
Assert.assertEquals("user", ci.getUser());
5757
Assert.assertEquals("pass", ci.getPassword());
5858
Assert.assertEquals("127.0.0.1", ci.getHost());
5959
Assert.assertEquals(1521, ci.getPort());
60-
Assert.assertEquals("sid", ci.getSid());
61-
Assert.assertEquals("user@127.0.0.1:1521/sid", ci.toString());
62-
Assert.assertEquals("jdbc:oracle:thin:@127.0.0.1:1521:sid", ci.getConnectionUrl());
60+
Assert.assertEquals("db", ci.getDb());
61+
Assert.assertEquals("user@127.0.0.1:1521/db", ci.toString());
62+
Assert.assertEquals("jdbc:oracle:thin:@//127.0.0.1:1521/db", ci.getConnectionUrl());
6363
} catch (Exception e) {
6464
Assert.fail(e.getMessage());
6565
}

0 commit comments

Comments
 (0)