Skip to content

Commit 2edd8ea

Browse files
authored
Merge pull request #1674 from ClickHouse/adjusting-kafka-feedback
Adding proxy support, adding some debug methods, tweaking styles based on Kafka Connect rework
2 parents 21891de + 9d9b290 commit 2edd8ea

File tree

6 files changed

+49
-17
lines changed

6 files changed

+49
-17
lines changed

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

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
1212
import com.clickhouse.client.api.data_formats.RowBinaryWithNamesAndTypesFormatReader;
1313
import com.clickhouse.client.api.data_formats.internal.MapBackedRecord;
14+
import com.clickhouse.client.api.enums.Protocol;
15+
import com.clickhouse.client.api.enums.ProxyType;
1416
import com.clickhouse.client.api.insert.DataSerializationException;
1517
import com.clickhouse.client.api.insert.InsertResponse;
1618
import com.clickhouse.client.api.insert.InsertSettings;
@@ -46,6 +48,7 @@
4648
import java.time.Duration;
4749
import java.time.temporal.ChronoUnit;
4850
import java.util.ArrayList;
51+
import java.util.Collections;
4952
import java.util.HashMap;
5053
import java.util.HashSet;
5154
import java.util.List;
@@ -187,12 +190,12 @@ public Builder addEndpoint(String endpoint) {
187190
* @param host - Endpoint host
188191
* @param port - Endpoint port
189192
*/
190-
public Builder addEndpoint(Protocol protocol, String host, int port) {
193+
public Builder addEndpoint(Protocol protocol, String host, int port, boolean secure) {
191194
ValidationUtils.checkNonBlank(host, "host");
192195
ValidationUtils.checkNotNull(protocol, "protocol");
193196
ValidationUtils.checkRange(port, 1, ValidationUtils.TCP_PORT_NUMBER_MAX, "port");
194197

195-
String endpoint = String.format("%s://%s:%d", protocol.toString().toLowerCase(), host, port);
198+
String endpoint = String.format("%s%s://%s:%d", protocol.toString().toLowerCase(), secure ? "s": "", host, port);
196199
this.addEndpoint(endpoint);
197200
return this;
198201
}
@@ -377,6 +380,17 @@ public Builder setDefaultDatabase(String database) {
377380
return this;
378381
}
379382

383+
public Builder addProxy(ProxyType type, String host, int port) {
384+
ValidationUtils.checkNotNull(type, "type");
385+
ValidationUtils.checkNonBlank(host, "host");
386+
ValidationUtils.checkRange(port, 1, ValidationUtils.TCP_PORT_NUMBER_MAX, "port");
387+
388+
this.configuration.put(String.valueOf(ClickHouseClientOption.PROXY_TYPE), type.toString());
389+
this.configuration.put(String.valueOf(ClickHouseClientOption.PROXY_HOST), host);
390+
this.configuration.put(String.valueOf(ClickHouseClientOption.PROXY_PORT), String.valueOf(port));
391+
return this;
392+
}
393+
380394
public Client build() {
381395
// check if endpoint are empty. so can not initiate client
382396
if (this.endpoints.isEmpty()) {
@@ -574,10 +588,7 @@ public CompletableFuture<InsertResponse> insert(String tableName, List<?> data,
574588
* @param format - format of the data in the stream
575589
* @return {@code CompletableFuture<InsertResponse>} - a promise to insert response
576590
*/
577-
public CompletableFuture<InsertResponse> insert(String tableName,
578-
InputStream data,
579-
ClickHouseFormat format)
580-
{
591+
public CompletableFuture<InsertResponse> insert(String tableName, InputStream data, ClickHouseFormat format) {
581592
return insert(tableName, data, format, new InsertSettings());
582593
}
583594

@@ -867,4 +878,18 @@ private String startOperation() {
867878
globalClientStats.put(operationId, new ClientStatisticsHolder());
868879
return operationId;
869880
}
881+
882+
public String toString() {
883+
return "Client{" +
884+
"endpoints=" + endpoints +
885+
'}';
886+
}
887+
888+
public Map<String, String> getConfiguration() {
889+
return Collections.unmodifiableMap(configuration);
890+
}
891+
892+
public Set<String> getEndpoints() {
893+
return Collections.unmodifiableSet(endpoints);
894+
}
870895
}

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

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.clickhouse.client.api.enums;
2+
3+
public enum Protocol {
4+
HTTP,
5+
//HTTPS,
6+
//TCP,
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.clickhouse.client.api.enums;
2+
3+
public enum ProxyType {
4+
//DIRECT,
5+
HTTP,
6+
SOCKS;
7+
}

client-v2/src/test/java/com/clickhouse/client/insert/InsertTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.clickhouse.client.ClickHouseNodeSelector;
99
import com.clickhouse.client.ClickHouseProtocol;
1010
import com.clickhouse.client.api.Client;
11-
import com.clickhouse.client.api.Protocol;
11+
import com.clickhouse.client.api.enums.Protocol;
1212
import com.clickhouse.client.api.insert.InsertResponse;
1313
import com.clickhouse.client.api.insert.InsertSettings;
1414
import com.clickhouse.client.api.metrics.ClientMetrics;
@@ -34,7 +34,7 @@ public class InsertTests extends BaseIntegrationTest {
3434
public void setUp() {
3535
ClickHouseNode node = getServer(ClickHouseProtocol.HTTP);
3636
client = new Client.Builder()
37-
.addEndpoint(Protocol.HTTP, node.getHost(), node.getPort())
37+
.addEndpoint(Protocol.HTTP, node.getHost(), node.getPort(), false)
3838
.setUsername("default")
3939
.setPassword("")
4040
.build();

client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import com.clickhouse.client.api.Client;
1313
import com.clickhouse.client.api.ClientException;
1414
import com.clickhouse.client.api.DataTypeUtils;
15-
import com.clickhouse.client.api.Protocol;
15+
import com.clickhouse.client.api.enums.Protocol;
1616
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
1717
import com.clickhouse.client.api.data_formats.NativeFormatReader;
1818
import com.clickhouse.client.api.data_formats.RowBinaryFormatReader;
@@ -74,7 +74,7 @@ public class QueryTests extends BaseIntegrationTest {
7474
public void setUp() {
7575
ClickHouseNode node = getServer(ClickHouseProtocol.HTTP);
7676
client = new Client.Builder()
77-
.addEndpoint(Protocol.HTTP, node.getHost(), node.getPort())
77+
.addEndpoint(Protocol.HTTP, node.getHost(), node.getPort(), false)
7878
.setUsername("default")
7979
.setPassword("")
8080
.build();

0 commit comments

Comments
 (0)