Skip to content

Commit 72aa103

Browse files
author
Paultagoras
committed
Adjusting port handling
1 parent 5c1b7fa commit 72aa103

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

client-v2/src/main/java/com/clickhouse/client/api/Client.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,13 +236,21 @@ public Builder() {
236236
/**
237237
* Builds a client object with the provided configuration through URL parameters.
238238
*
239-
* @param url - URL formatted string with protocol, host, port, and client configuration settings.
239+
* @param urlString - URL formatted string with protocol, host, port, and client configuration settings.
240240
* @return Client - a client object
241241
*/
242-
public Builder fromUrl(String url) {
242+
public Builder fromUrl(String urlString) {
243243
try {
244-
Map<String, String> urlProperties = HttpAPIClientHelper.parseUrlParameters(new java.net.URL(url));
245-
this.addEndpoint(url);
244+
URL url = new URL(urlString);
245+
Map<String, String> urlProperties = HttpAPIClientHelper.parseUrlParameters(url);
246+
247+
// Add the endpoint
248+
boolean secure = url.getProtocol().equalsIgnoreCase("https");
249+
int port = url.getPort();
250+
if (port == -1) {
251+
port = secure ? ClickHouseHttpProto.DEFAULT_HTTPS_PORT : ClickHouseHttpProto.DEFAULT_HTTP_PORT;
252+
}
253+
this.addEndpoint(Protocol.HTTP, url.getHost(), port, secure);
246254

247255
for (ClientConfigProperties properties: ClientConfigProperties.values()) {
248256
String key = properties.getKey().replace(ClientConfigProperties.SERVER_SETTING_PREFIX, "");//People wouldn't pass with prefix

client-v2/src/main/java/com/clickhouse/client/api/http/ClickHouseHttpProto.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,8 @@ public class ClickHouseHttpProto {
5858
public static final String QPARAM_QUERY_ID = "query_id";
5959

6060
public static final String QPARAM_ROLE = "role";
61+
62+
public static final int DEFAULT_HTTP_PORT = 8123;
63+
64+
public static final int DEFAULT_HTTPS_PORT = 8443;
6165
}

jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/JdbcConfiguration.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ public boolean isDisableFrameworkDetection() {
4444
}
4545

4646
public JdbcConfiguration(String url, Properties info) {
47-
this.jdbcUrl = url;
48-
this.url = stripUrlPrefix(url);
47+
this.jdbcUrl = url;//Raw URL
48+
this.url = cleanUrl(url);
4949
this.user = info.getProperty("user", "default");
5050
this.password = info.getProperty("password", "");
5151
this.disableFrameworkDetection = Boolean.parseBoolean(info.getProperty("disable_frameworks_detection", "false"));
@@ -55,6 +55,14 @@ public static boolean acceptsURL(String url) {
5555
return url.startsWith(PREFIX_CLICKHOUSE) || url.startsWith(PREFIX_CLICKHOUSE_SHORT);
5656
}
5757

58+
private String cleanUrl(String url) {
59+
url = stripUrlPrefix(url);
60+
if (url.startsWith("//")) {
61+
url = "http:" + url;
62+
}
63+
64+
return url;
65+
}
5866
private String stripUrlPrefix(String url) {
5967
if (url.startsWith(PREFIX_CLICKHOUSE)) {
6068
return url.substring(PREFIX_CLICKHOUSE.length());

0 commit comments

Comments
 (0)