Skip to content

Commit cd45d8c

Browse files
committed
Merge branch 'main' into add-micrometer-support
2 parents d3ecef9 + 0b2485f commit cd45d8c

File tree

14 files changed

+258
-1197
lines changed

14 files changed

+258
-1197
lines changed

.github/pull_request_template.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
## Summary
22
<!-- A short description of the changes with a link to an open issue. -->
33

4+
Closes <!-- Link to an issue to close on merge. -->
45
## Checklist
56
Delete items not relevant to your PR:
6-
- [ ] Closes issue <!-- Link to an issue to close on merge. -->
7+
- [ ] Closes #<issue ref>
78
- [ ] Unit and integration tests covering the common scenarios were added
89
- [ ] A human-readable description of the changes was provided to include in CHANGELOG
910
- [ ] For significant changes, documentation in https://github.com/ClickHouse/clickhouse-docs was updated with further explanations or tutorials

.github/workflows/analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,6 @@ jobs:
9595
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
9696
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
9797
run: |
98-
mvn --batch-mode -DclickhouseVersion=$PREFERRED_LTS_VERSION -Dclient.tests.useNewImplementation=true \
98+
mvn --batch-mode -DclickhouseVersion=$PREFERRED_LTS_VERSION \
9999
-Panalysis verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
100100
continue-on-error: true

client-v2/pom.xml

+18-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<packaging>jar</packaging>
1414

1515
<name>ClickHouse Client API</name>
16-
<description>New client api for ClickHouse</description>
17-
<url>https://github.com/ClickHouse/clickhouse-java/tree/main/clickhouse-client-api</url>
16+
<description>ClickHouse Client Library</description>
17+
<url>https://github.com/ClickHouse/clickhouse-java/tree/main/client-v2</url>
1818

1919
<properties>
2020
<apache.httpclient.version>5.3.1</apache.httpclient.version>
@@ -172,6 +172,22 @@
172172
<release>8</release>
173173
</configuration>
174174
</plugin>
175+
<plugin>
176+
<groupId>org.apache.maven.plugins</groupId>
177+
<artifactId>maven-assembly-plugin</artifactId>
178+
<configuration>
179+
<descriptorRefs>
180+
<descriptorRef>jar-with-dependencies</descriptorRef>
181+
</descriptorRefs>
182+
<archive>
183+
<addMavenDescriptor>false</addMavenDescriptor>
184+
<manifest>
185+
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
186+
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
187+
</manifest>
188+
</archive>
189+
</configuration>
190+
</plugin>
175191
<plugin>
176192
<groupId>org.apache.maven.plugins</groupId>
177193
<artifactId>maven-shade-plugin</artifactId>

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

+135-243
Large diffs are not rendered by default.

client-v2/src/main/java/com/clickhouse/client/api/insert/InsertResponse.java

-17
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,17 @@
11
package com.clickhouse.client.api.insert;
22

3-
import com.clickhouse.client.ClickHouseResponse;
4-
import com.clickhouse.client.api.internal.ClientStatisticsHolder;
5-
import com.clickhouse.client.api.internal.ClientV1AdaptorHelper;
63
import com.clickhouse.client.api.metrics.OperationMetrics;
74
import com.clickhouse.client.api.metrics.ServerMetrics;
85

96
public class InsertResponse implements AutoCloseable {
10-
private final ClickHouseResponse responseRef;
117
private OperationMetrics operationMetrics;
128

13-
public InsertResponse(ClickHouseResponse responseRef,
14-
ClientStatisticsHolder clientStatisticsHolder) {
15-
this.responseRef = responseRef;
16-
this.operationMetrics = new OperationMetrics(clientStatisticsHolder);
17-
this.operationMetrics.operationComplete();
18-
this.operationMetrics.setQueryId(responseRef.getSummary().getQueryId());
19-
ClientV1AdaptorHelper.setServerStats(responseRef.getSummary().getProgress(), this.operationMetrics);
20-
}
21-
229
public InsertResponse(OperationMetrics metrics) {
23-
this.responseRef = null;
2410
this.operationMetrics = metrics;
2511
}
2612

2713
@Override
2814
public void close() {
29-
if (responseRef != null) {
30-
responseRef.close();
31-
}
3215
}
3316

3417
/**

client-v2/src/main/java/com/clickhouse/client/api/insert/InsertSettings.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.clickhouse.client.api.insert;
22

3+
import com.clickhouse.client.ClickHouseProtocol;
34
import com.clickhouse.client.api.Client;
45
import com.clickhouse.client.api.ClientConfigProperties;
5-
import com.clickhouse.client.api.internal.ServerSettings;
6+
import com.clickhouse.client.api.enums.Protocol;
67
import com.clickhouse.client.api.internal.ValidationUtils;
7-
import com.clickhouse.client.config.ClickHouseClientOption;
88
import org.apache.hc.core5.http.HttpHeaders;
99

1010
import java.util.Collection;
@@ -79,14 +79,14 @@ public InsertSettings setDeduplicationToken(String token) {
7979
}
8080

8181
public String getQueryId() {
82-
return (String) rawSettings.get(ClickHouseClientOption.QUERY_ID.getKey());
82+
return (String) rawSettings.get(ClientConfigProperties.QUERY_ID.getKey());
8383
}
8484

8585
/**
8686
* Sets the query id. This id will be sent to the server and can be used to identify the query.
8787
*/
8888
public InsertSettings setQueryId(String queryId) {
89-
rawSettings.put(ClickHouseClientOption.QUERY_ID.getKey(), queryId);
89+
rawSettings.put(ClientConfigProperties.QUERY_ID.getKey(), queryId);
9090
return this;
9191
}
9292

client-v2/src/main/java/com/clickhouse/client/api/internal/ClientV1AdaptorHelper.java

-83
This file was deleted.

client-v2/src/main/java/com/clickhouse/client/api/internal/HttpAPIClientHelper.java

+27-6
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
import com.clickhouse.client.ClickHouseNode;
44
import com.clickhouse.client.ClickHouseSslContextProvider;
55
import com.clickhouse.client.api.Client;
6+
import com.clickhouse.client.api.ClientConfigProperties;
67
import com.clickhouse.client.api.ClientException;
78
import com.clickhouse.client.api.ClientFaultCause;
89
import com.clickhouse.client.api.ClientMisconfigurationException;
9-
import com.clickhouse.client.api.ClientConfigProperties;
1010
import com.clickhouse.client.api.ConnectionInitiationException;
1111
import com.clickhouse.client.api.ConnectionReuseStrategy;
1212
import com.clickhouse.client.api.ServerException;
@@ -75,6 +75,8 @@
7575
import java.util.Collections;
7676
import java.util.HashMap;
7777
import java.util.Map;
78+
import java.util.Objects;
79+
import java.util.Properties;
7880
import java.util.Set;
7981
import java.util.concurrent.TimeUnit;
8082
import java.util.function.Function;
@@ -710,11 +712,30 @@ private String buildDefaultUserAgent() {
710712
userAgent.setLength(userAgent.length() - 2);
711713
userAgent.append(')');
712714

713-
userAgent.append(" ")
714-
.append(this.httpClient.getClass().getPackage().getImplementationTitle().replaceAll(" ", "-"))
715-
.append('/')
716-
.append(this.httpClient.getClass().getPackage().getImplementationVersion());
717-
715+
try {
716+
String httpClientVersion = this.httpClient.getClass().getPackage().getImplementationVersion();
717+
if (Objects.equals(this.httpClient.getClass().getPackage().getImplementationTitle(), this.getClass().getPackage().getImplementationTitle())) {
718+
// shaded jar - all packages have same implementation title
719+
httpClientVersion = "unknown";
720+
try (InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("client-v2-version.properties")) {
721+
Properties p = new Properties();
722+
p.load(in);
723+
724+
String tmp = p.getProperty("apache.http.client.version");
725+
if (tmp != null && !tmp.isEmpty() && !tmp.equals("${apache.httpclient.version}")) {
726+
httpClientVersion = tmp;
727+
}
728+
} catch (Exception e) {
729+
// ignore
730+
}
731+
}
732+
userAgent.append(" ")
733+
.append("Apache-HttpClient")
734+
.append('/')
735+
.append(httpClientVersion);
736+
} catch (Exception e) {
737+
LOG.info("failed to construct http client version string");
738+
}
718739
return userAgent.toString();
719740
}
720741

0 commit comments

Comments
 (0)