|
15 | 15 | import static oracle.nosql.driver.util.BinaryProtocol.V2; |
16 | 16 | import static oracle.nosql.driver.util.BinaryProtocol.V3; |
17 | 17 | import static oracle.nosql.driver.util.CheckNull.requireNonNull; |
18 | | -import static oracle.nosql.driver.util.LogUtil.isLoggable; |
19 | | -import static oracle.nosql.driver.util.LogUtil.logFine; |
20 | | -import static oracle.nosql.driver.util.LogUtil.logInfo; |
21 | | -import static oracle.nosql.driver.util.LogUtil.logTrace; |
22 | | -import static oracle.nosql.driver.util.LogUtil.logWarning; |
23 | 18 | import static oracle.nosql.driver.util.HttpConstants.ACCEPT; |
24 | 19 | import static oracle.nosql.driver.util.HttpConstants.CONNECTION; |
25 | 20 | import static oracle.nosql.driver.util.HttpConstants.CONTENT_LENGTH; |
|
28 | 23 | import static oracle.nosql.driver.util.HttpConstants.NOSQL_DATA_PATH; |
29 | 24 | import static oracle.nosql.driver.util.HttpConstants.REQUEST_ID_HEADER; |
30 | 25 | import static oracle.nosql.driver.util.HttpConstants.USER_AGENT; |
| 26 | +import static oracle.nosql.driver.util.LogUtil.isLoggable; |
| 27 | +import static oracle.nosql.driver.util.LogUtil.logFine; |
| 28 | +import static oracle.nosql.driver.util.LogUtil.logInfo; |
| 29 | +import static oracle.nosql.driver.util.LogUtil.logTrace; |
| 30 | +import static oracle.nosql.driver.util.LogUtil.logWarning; |
31 | 31 |
|
32 | 32 | import java.io.IOException; |
33 | 33 | import java.net.URL; |
34 | | -import java.util.Iterator; |
35 | 34 | import java.util.HashSet; |
| 35 | +import java.util.Iterator; |
36 | 36 | import java.util.Map; |
37 | 37 | import java.util.concurrent.ConcurrentHashMap; |
38 | 38 | import java.util.concurrent.ConcurrentLinkedQueue; |
|
61 | 61 | import oracle.nosql.driver.SecurityInfoNotReadyException; |
62 | 62 | import oracle.nosql.driver.StatsControl; |
63 | 63 | import oracle.nosql.driver.TableNotFoundException; |
64 | | -import oracle.nosql.driver.WriteThrottlingException; |
65 | 64 | import oracle.nosql.driver.UnsupportedProtocolException; |
| 65 | +import oracle.nosql.driver.WriteThrottlingException; |
66 | 66 | import oracle.nosql.driver.httpclient.HttpClient; |
67 | 67 | import oracle.nosql.driver.httpclient.ResponseHandler; |
68 | 68 | import oracle.nosql.driver.kv.AuthenticationException; |
|
85 | 85 | import oracle.nosql.driver.ops.serde.BinarySerializerFactory; |
86 | 86 | import oracle.nosql.driver.ops.serde.SerializerFactory; |
87 | 87 | import oracle.nosql.driver.query.QueryDriver; |
88 | | -import oracle.nosql.driver.values.MapValue; |
89 | 88 | import oracle.nosql.driver.util.ByteInputStream; |
90 | 89 | import oracle.nosql.driver.util.HttpConstants; |
91 | 90 | import oracle.nosql.driver.util.NettyByteInputStream; |
92 | 91 | import oracle.nosql.driver.util.NettyByteOutputStream; |
93 | 92 | import oracle.nosql.driver.util.RateLimiterMap; |
94 | 93 | import oracle.nosql.driver.util.SerializationUtil; |
| 94 | +import oracle.nosql.driver.values.MapValue; |
95 | 95 |
|
96 | 96 | import io.netty.buffer.ByteBuf; |
97 | 97 | import io.netty.channel.Channel; |
@@ -197,6 +197,9 @@ public class Client { |
197 | 197 | /* note this must end with '=' */ |
198 | 198 | private final String SESSION_COOKIE_FIELD = "session="; |
199 | 199 |
|
| 200 | + /* for keeping track of SDKs usage */ |
| 201 | + private String userAgent; |
| 202 | + |
200 | 203 | public Client(Logger logger, |
201 | 204 | NoSQLHandleConfig httpConfig) { |
202 | 205 |
|
@@ -271,6 +274,16 @@ public Client(Logger logger, |
271 | 274 | oneTimeMessages = new HashSet<String>(); |
272 | 275 | statsControl = new StatsControlImpl(config, |
273 | 276 | logger, httpClient, httpConfig.getRateLimitingEnabled()); |
| 277 | + |
| 278 | + String extensionUserAgent = httpConfig.getExtensionUserAgent(); |
| 279 | + if (extensionUserAgent != null) { |
| 280 | + userAgent = new StringBuilder(HttpConstants.userAgent) |
| 281 | + .append(" ") |
| 282 | + .append(extensionUserAgent) |
| 283 | + .toString(); |
| 284 | + } else { |
| 285 | + this.userAgent = HttpConstants.userAgent; |
| 286 | + } |
274 | 287 | } |
275 | 288 |
|
276 | 289 | /** |
@@ -1297,8 +1310,8 @@ private void addCommonHeaders(HttpHeaders headers) { |
1297 | 1310 | .set(USER_AGENT, getUserAgent()); |
1298 | 1311 | } |
1299 | 1312 |
|
1300 | | - private static String getUserAgent() { |
1301 | | - return HttpConstants.userAgent; |
| 1313 | + private String getUserAgent() { |
| 1314 | + return userAgent; |
1302 | 1315 | } |
1303 | 1316 |
|
1304 | 1317 | public static void trace(String msg, int level) { |
|
0 commit comments