Skip to content

Commit a591c02

Browse files
committed
dbeaver/dbeaver#38710 simplified check
1 parent 7ff8d70 commit a591c02

3 files changed

Lines changed: 41 additions & 8 deletions

File tree

com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlConstants.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
public class LibSqlConstants {
2222

2323
public static final String CONNECTION_URL_EXAMPLES = "jdbc:dbeaver:libsql:<hostname>, libsql://<hostname>";
24-
public static final String CONNECTION_PROTOCOLS_REGEXP = "jdbc:dbeaver:libsql:(http(s)?://)?(libsql://)?|libsql://";
2524
public static final Pattern CONNECTION_URL_PATTERN =
26-
Pattern.compile("(" + CONNECTION_PROTOCOLS_REGEXP + ")[a-z0-9:.-]+");
25+
Pattern.compile("(jdbc:dbeaver:libsql:)?(libsql://)?[a-z0-9/:.-]+");
2726

2827
public static final int DRIVER_VERSION_MAJOR = 1;
2928
public static final int DRIVER_VERSION_MINOR = 0;

com.dbeaver.jdbc.driver.libsql/src/main/java/com/dbeaver/jdbc/driver/libsql/LibSqlDriver.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,9 @@ public Connection connect(String url, Properties info) throws SQLException {
4949
".\nExpected URL formats: " + LibSqlConstants.CONNECTION_URL_EXAMPLES);
5050
}
5151

52-
String targetUrl = url.replace("jdbc:dbeaver:libsql:", "");
53-
if (!targetUrl.startsWith("http")) {
54-
targetUrl = matcher.group(0)
55-
.replaceAll(LibSqlConstants.CONNECTION_PROTOCOLS_REGEXP, "https://");
52+
String targetUrl = url.replaceFirst("jdbc:dbeaver:libsql:", "");
53+
if (targetUrl.startsWith("libsql://")) {
54+
targetUrl = targetUrl.replaceFirst("libsql://", "https://");
5655
}
5756

5857
Map<String, Object> props = new LinkedHashMap<>();

com.dbeaver.jdbc.driver.libsql/src/test/java/com/dbeaver/jdbc/upd/driver/test/LibSqlDriverTest.java

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@
1616
*/
1717
package com.dbeaver.jdbc.upd.driver.test;
1818

19+
import com.dbeaver.jdbc.driver.libsql.LibSqlConnection;
20+
import com.dbeaver.jdbc.driver.libsql.LibSqlDriver;
21+
1922
import java.sql.*;
23+
import java.util.Collections;
24+
import java.util.Hashtable;
25+
import java.util.Properties;
2026

2127
public class LibSqlDriverTest {
2228
/**
@@ -25,11 +31,33 @@ public class LibSqlDriverTest {
2531
* @param args mvn exec:java "-Dexec.args=database-url [token]"
2632
*/
2733
public static void main(String[] args) throws Exception {
34+
// String databaseUrl = args[0];
35+
// String token = args.length > 1 ? args[1] : null;
36+
// runBasicQuery(databaseUrl, token);
37+
38+
var driver = new LibSqlDriver();
39+
assertConnectionUrl(driver,
40+
"jdbc:dbeaver:libsql:localhost",
41+
"https://localhost"
42+
);
43+
// assertConnectionUrl(driver,
44+
// "jdbc:dbeaver:libsql:localhost:8080",
45+
// "https://localhost:8080"
46+
// );
47+
// assertConnectionUrl(driver,
48+
// "jdbc:dbeaver:libsql:http://localhost:8080",
49+
// "http://localhost:8080"
50+
// );
51+
// assertConnectionUrl(driver,
52+
// "jdbc:dbeaver:libsql:http://localhost:8080",
53+
// "http://localhost:8080"
54+
// );
55+
}
56+
57+
private static void runBasicQuery(String databaseUrl, String token) throws Exception {
2858
long startTime = System.currentTimeMillis();
2959

3060
try {
31-
String databaseUrl = args[0];
32-
String token = args.length > 1 ? args[1] : null;
3361
try (Connection connection = DriverManager.getConnection("jdbc:dbeaver:libsql:" + databaseUrl, null, token)) {
3462
DatabaseMetaData metaData = connection.getMetaData();
3563
System.out.println("Driver: " + metaData.getDriverName());
@@ -84,4 +112,11 @@ private static void printResultSet(ResultSet dbResults) throws SQLException {
84112
System.out.println();
85113
}
86114
}
115+
116+
private static void assertConnectionUrl(LibSqlDriver driver, String input, String output) throws SQLException {
117+
Connection connection = driver.connect(input, new Properties());
118+
assert connection instanceof LibSqlConnection;
119+
LibSqlConnection libSqlConnection = (LibSqlConnection) connection;
120+
assert libSqlConnection.getUrl().equals(output);
121+
}
87122
}

0 commit comments

Comments
 (0)