Skip to content

Commit b0a8934

Browse files
committed
implemented version file
1 parent b5d52f4 commit b0a8934

File tree

17 files changed

+109
-30
lines changed

17 files changed

+109
-30
lines changed

clickhouse-client/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@
6969
</dependencies>
7070

7171
<build>
72+
<resources>
73+
<resource>
74+
<directory>src/main/resources</directory>
75+
<filtering>true</filtering>
76+
</resource>
77+
</resources>
7278
<plugins>
7379
<plugin>
7480
<groupId>org.apache.maven.plugins</groupId>

clickhouse-client/src/main/java/com/clickhouse/client/config/ClickHouseClientOption.java

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.clickhouse.client.config;
22

3+
import java.io.InputStream;
34
import java.io.Serializable;
45
import java.net.InetAddress;
56
import java.net.UnknownHostException;
67
import java.util.Collections;
78
import java.util.HashMap;
89
import java.util.Map;
10+
import java.util.Properties;
911

1012
import com.clickhouse.config.ClickHouseOption;
1113
import com.clickhouse.data.ClickHouseChecker;
@@ -492,18 +494,21 @@ public enum ClickHouseClientOption implements ClickHouseOption {
492494
options = Collections.unmodifiableMap(map);
493495

494496
// <artifact-id> <version> (revision: <revision>)
495-
String ver = ClickHouseClientOption.class.getPackage().getImplementationVersion();
496-
String[] parts = ver == null || ver.isEmpty() ? null : ver.split("\\s");
497-
if (parts != null && parts.length == 4 && parts[1].length() > 0 && parts[3].length() > 1
498-
&& ver.charAt(ver.length() - 1) == ')') {
499-
PRODUCT_VERSION = parts[1];
500-
ver = parts[3];
501-
PRODUCT_REVISION = ver.substring(0, ver.length() - 1);
502-
} else { // perhaps try harder by checking version from pom.xml?
503-
PRODUCT_VERSION = LATEST_KNOWN_VERSION;
504-
PRODUCT_REVISION = UNKNOWN;
497+
String tmpVersion = "unknown";
498+
try (InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("clickhouse-client-version.properties")) {
499+
Properties p = new Properties();
500+
p.load(in);
501+
502+
String tmp = p.getProperty("version");
503+
if (tmp != null && !tmp.isEmpty() && !tmp.equals("${revision}")) {
504+
tmpVersion = tmp;
505+
}
506+
} catch (Exception e) {
507+
// ignore
505508
}
506509

510+
PRODUCT_VERSION = tmpVersion;
511+
PRODUCT_REVISION = UNKNOWN;
507512

508513
CLIENT_OS_INFO = new StringBuilder().append(getSystemConfig("os.name", "O/S")).append('/')
509514
.append(getSystemConfig("os.version", UNKNOWN)).toString();
@@ -514,12 +519,14 @@ public enum ClickHouseClientOption implements ClickHouseOption {
514519
CLIENT_JVM_INFO = new StringBuilder().append(getSystemConfig("java.vm.name", "Java")).append('/')
515520
.append(javaVersion).toString();
516521
CLIENT_USER = getSystemConfig("user.name", UNKNOWN);
522+
523+
String host = null;
517524
try {
518-
ver = InetAddress.getLocalHost().getHostName();
525+
host = InetAddress.getLocalHost().getHostName();
519526
} catch (UnknownHostException e1) {
520527
// ignore
521528
}
522-
CLIENT_HOST = ver == null || ver.isEmpty() ? UNKNOWN : ver;
529+
CLIENT_HOST = host == null || host.isEmpty() ? UNKNOWN : host;
523530
}
524531

525532
/**
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version=${revision}
2+
build.date=${build_timestamp}

clickhouse-client/src/test/java/com/clickhouse/client/ClickHouseConfigTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.Collections;
1313
import java.util.HashMap;
1414
import java.util.Map;
15+
import java.util.regex.Matcher;
16+
import java.util.regex.Pattern;
1517

1618
public class ClickHouseConfigTest {
1719
@Test(groups = { "unit" })
@@ -74,7 +76,8 @@ public void testCustomValues() {
7476
@Test(groups = { "unit" })
7577
public void testClientInfo() throws UnknownHostException {
7678
ClickHouseConfig config = new ClickHouseConfig();
77-
Assert.assertEquals(config.getProductVersion(), ClickHouseClientOption.LATEST_KNOWN_VERSION);
79+
Matcher versioMatcher = Pattern.compile("(^|\\\\.[\\\\d]+)+.*").matcher(config.getProductVersion());
80+
Assert.assertTrue(versioMatcher.matches());
7881
Assert.assertEquals(config.getProductRevision(), "unknown");
7982
Assert.assertEquals(config.getClientOsInfo(),
8083
System.getProperty("os.name") + "/" + System.getProperty("os.version"));

clickhouse-http-client/src/test/java/com/clickhouse/client/http/ClickHouseHttpClientTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ private void testUserAgent(ClickHouseOption option, String optionValue) throws E
174174
.executeAndWait()) {
175175
if (response.records().iterator().hasNext()) {
176176
String result = response.firstRecord().getValue(0).asString();
177+
System.out.println(result);
177178
Assert.assertTrue(result.startsWith(optionValue + " ClickHouse-JavaClient/"));
178179
Assert.assertTrue(result.indexOf("Http") > 0);
179180
break;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version=${revision}
2+
build.date=${build_timestamp}

client-v2/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@
138138
</dependencies>
139139

140140
<build>
141+
<resources>
142+
<resource>
143+
<directory>src/main/resources</directory>
144+
<filtering>true</filtering>
145+
</resource>
146+
</resources>
141147
<plugins>
142148
<plugin>
143149
<groupId>org.apache.maven.plugins</groupId>

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
import java.util.LinkedHashMap;
7676
import java.util.List;
7777
import java.util.Map;
78+
import java.util.Properties;
7879
import java.util.Set;
7980
import java.util.StringJoiner;
8081
import java.util.TimeZone;
@@ -2139,6 +2140,10 @@ public String getServerVersion() {
21392140
return this.serverVersion;
21402141
}
21412142

2143+
public String getClientVersion() {
2144+
return clientVersion;
2145+
}
2146+
21422147
/**
21432148
* Sets list of DB roles that should be applied to each query.
21442149
*
@@ -2155,11 +2160,28 @@ public void updateClientName(String name) {
21552160
this.configuration.put(ClientConfigProperties.CLIENT_NAME.getKey(), name);
21562161
}
21572162

2158-
public static final String LATEST_ARTIFACT_VERSION = "~0.7.2";
2163+
public static final String clientVersion = getPackageVersion();
21592164
public static final String CLIENT_USER_AGENT = "clickhouse-java-v2/";
21602165

21612166
private Collection<String> unmodifiableDbRolesView = Collections.emptyList();
21622167

2168+
private static String getPackageVersion() {
2169+
String version = "unknown";
2170+
try (InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream("client-v2-version.properties")) {
2171+
Properties p = new Properties();
2172+
p.load(in);
2173+
2174+
String tmp = p.getProperty("version");
2175+
if (tmp != null && !tmp.isEmpty() && !tmp.equals("${revision}")) {
2176+
version = tmp;
2177+
}
2178+
} catch (Exception e) {
2179+
LOG.error("Failed to load version file", e);
2180+
}
2181+
2182+
return version;
2183+
}
2184+
21632185
/**
21642186
* Returns list of DB roles that should be applied to each query.
21652187
*

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,8 +672,9 @@ private String buildDefaultUserAgent() {
672672

673673
String clientVersion = Client.class.getPackage().getImplementationVersion();
674674
if (clientVersion == null) {
675-
clientVersion = Client.LATEST_ARTIFACT_VERSION;
675+
clientVersion = Client.clientVersion;
676676
}
677+
677678
userAgent.append(clientVersion);
678679

679680
userAgent.append(" (");
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version=${revision}
2+
build.date=${build_timestamp}

0 commit comments

Comments
 (0)