Skip to content

Commit 03476f6

Browse files
committed
update qcloud sdk to 1.5.31
1 parent 576afc3 commit 03476f6

File tree

12 files changed

+71
-46
lines changed

12 files changed

+71
-46
lines changed

QCloudFoundation/foundation/build.gradle

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
apply plugin: 'com.android.library'
22

33
android {
4-
compileSdkVersion 27
4+
compileSdkVersion 28
55

66
defaultConfig {
77
minSdkVersion 15
8-
targetSdkVersion 27
8+
targetSdkVersion 28
99

10-
versionCode 10529
11-
versionName "1.5.29"
10+
versionCode 10531
11+
versionName "1.5.31"
1212

1313
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
1414

@@ -50,8 +50,10 @@ dependencies {
5050

5151
project.extensions.add('artifactId', 'qcloud-foundation')
5252
project.extensions.add('artifactDesc', 'the core foundation for tencent cloud sdk')
53+
project.extensions.add('archiveFilePath', 'outputs/aar/qcloud-foundation-release.aar')
5354

5455

56+
apply from: '../../publishMavenCentral.gradle'
5557

5658
/*
5759
* Copyright (c) 2010-2020 Tencent Cloud. All rights reserved.

QCloudFoundation/foundation/src/androidTest/java/com/tencent/qcloud/core/CosUnitTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
package com.tencent.qcloud.core;
2424

2525
import android.content.Context;
26-
import android.support.test.InstrumentationRegistry;
26+
27+
import androidx.test.InstrumentationRegistry;
2728
import androidx.test.ext.junit.runners.AndroidJUnit4;
2829

2930
import com.tencent.qcloud.core.auth.COSXmlSignSourceProvider;

QCloudFoundation/foundation/src/androidTest/java/com/tencent/qcloud/core/HttpClientUnitTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import android.content.Context;
2626
import android.net.Uri;
2727
import androidx.annotation.Nullable;
28-
import android.support.test.InstrumentationRegistry;
28+
import androidx.test.InstrumentationRegistry;
2929
import androidx.test.ext.junit.runners.AndroidJUnit4;
3030
import android.util.Log;
3131

QCloudFoundation/foundation/src/androidTest/java/com/tencent/qcloud/core/LoggerUnitTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
package com.tencent.qcloud.core;
2424

2525
import android.content.Context;
26-
import android.support.test.InstrumentationRegistry;
26+
27+
import androidx.test.InstrumentationRegistry;
2728
import androidx.test.ext.junit.runners.AndroidJUnit4;
2829

2930
import com.tencent.qcloud.core.logger.FileLogAdapter;

QCloudFoundation/foundation/src/androidTest/java/com/tencent/qcloud/core/http/DnsTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
package com.tencent.qcloud.core.http;
2424

2525
import android.content.Context;
26-
import android.support.test.InstrumentationRegistry;
26+
27+
import androidx.test.InstrumentationRegistry;
2728
import androidx.test.ext.junit.runners.AndroidJUnit4;
2829

2930
import com.tencent.qcloud.core.logger.QCloudLogger;

QCloudFoundation/foundation/src/main/java/com/tencent/qcloud/core/http/CallMetricsListener.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,7 @@ public class CallMetricsListener extends EventListener {
6363
/**
6464
* domainName inetAddressList connectAddress 都可能是空值
6565
*/
66-
private String domainName;
6766
private List<InetAddress> inetAddressList;
68-
private InetAddress connectAddress;
6967

7068
private long requestBodyByteCount;
7169
private long responseBodyByteCount;
@@ -92,7 +90,6 @@ public void dnsEnd(Call call, String domainName, List<InetAddress> inetAddressLi
9290
ipList.append("}");
9391
QCloudLogger.i(QCloudHttpClient.HTTP_LOG_TAG, "dns: " + domainName + ":" + ipList.toString());
9492
dnsLookupTookTime += System.nanoTime() - dnsStartTime;
95-
this.domainName = domainName;
9693
this.inetAddressList = inetAddressList;
9794
}
9895

@@ -176,15 +173,7 @@ public void responseBodyEnd(Call call, long byteCount) {
176173
responseBodyByteCount = byteCount;
177174
}
178175

179-
public void recordConnection(InetAddress address) {
180-
if (address != null) {
181-
domainName = address.getHostName();
182-
connectAddress = address;
183-
}
184-
}
185-
186176
public void dumpMetrics(HttpTaskMetrics metrics) {
187-
metrics.domainName = domainName;
188177
metrics.remoteAddress = inetAddressList;
189178
metrics.dnsLookupTookTime += dnsLookupTookTime;
190179
metrics.connectTookTime += connectTookTime;
@@ -195,7 +184,6 @@ public void dumpMetrics(HttpTaskMetrics metrics) {
195184
metrics.readResponseBodyTookTime += readResponseBodyTookTime;
196185
metrics.requestBodyByteCount = requestBodyByteCount;
197186
metrics.responseBodyByteCount = responseBodyByteCount;
198-
metrics.connectAddress = connectAddress;
199187
}
200188

201189
public List<InetAddress> dumpDns() {

QCloudFoundation/foundation/src/main/java/com/tencent/qcloud/core/http/HttpTask.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import com.tencent.qcloud.core.task.TaskExecutors;
3737

3838
import java.io.IOException;
39+
import java.util.List;
40+
import java.util.Set;
3941
import java.util.concurrent.Executor;
4042
import java.util.concurrent.atomic.AtomicInteger;
4143

@@ -111,6 +113,10 @@ public HttpTask<T> attachMetric(HttpTaskMetrics httpMetric) {
111113
return this;
112114
}
113115

116+
public HttpTaskMetrics metrics() {
117+
return metrics;
118+
}
119+
114120
public boolean isUploadTask() {
115121
if (httpRequest.getRequestBody() instanceof StreamingRequestBody) {
116122
return ((StreamingRequestBody) httpRequest.getRequestBody()).isLargeData();
@@ -160,6 +166,11 @@ public void cancel() {
160166
super.cancel();
161167
}
162168

169+
private boolean isCompleteMultipartRequest(HttpRequest httpRequest) {
170+
Set<String> queryKeys = httpRequest.queries.keySet();
171+
return queryKeys != null && queryKeys.size() == 1 && queryKeys.contains("uploadId");
172+
}
173+
163174
@Override
164175
protected HttpResult<T> execute() throws QCloudClientException, QCloudServiceException {
165176
if (metrics == null) {
@@ -168,6 +179,12 @@ protected HttpResult<T> execute() throws QCloudClientException, QCloudServiceExc
168179
networkProxy.metrics = metrics;
169180
metrics.onTaskStart();
170181

182+
// if (isCompleteMultipartRequest(httpRequest)) {
183+
// QCloudServiceException serviceException = new QCloudServiceException("NoSuchUpload");
184+
// serviceException.setErrorCode("Request is expired");
185+
// throw serviceException;
186+
// }
187+
171188
// 准备请求,包括计算MD5和签名
172189
if (httpRequest.shouldCalculateContentMD5()) {
173190
metrics.onCalculateMD5Start();
@@ -267,7 +284,7 @@ private void calculateContentMD5() throws QCloudClientException {
267284
try {
268285
requestBody.writeTo(sink);
269286
} catch (IOException e) {
270-
throw new QCloudClientException("calculate md5 error", e);
287+
throw new QCloudClientException("calculate md5 error" + e.getMessage(), e);
271288
}
272289

273290
String md5 = sink.md5().base64();

QCloudFoundation/foundation/src/main/java/com/tencent/qcloud/core/http/HttpTaskMetrics.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
import com.tencent.qcloud.core.logger.QCloudLogger;
3131

32-
import junit.framework.TestSuite;
3332

3433
import java.net.InetAddress;
3534
import java.net.InetSocketAddress;
@@ -239,12 +238,18 @@ private double toSeconds(long nanotime) {
239238
}
240239

241240
public static HttpTaskMetrics createMetricsWithHost(String host) {
242-
QCloudLogger.i("QCloudTest", "create HttpTaskMetrics with domain name is " + host);
243241
HttpTaskMetrics taskMetrics = new HttpTaskMetrics();
244242
taskMetrics.domainName = host;
245243
return taskMetrics;
246244
}
247245

246+
public void recordConnectAddress(InetAddress address) {
247+
if (address != null) {
248+
domainName = address.getHostName();
249+
connectAddress = address;
250+
}
251+
}
252+
248253
/**
249254
* 数据准备完毕时的回调,你可以重载此方法,实现数据完毕后的回调
250255
*/
@@ -254,8 +259,6 @@ public void onDataReady() {
254259

255260
synchronized public HttpTaskMetrics merge(HttpTaskMetrics taskMetrics) {
256261

257-
QCloudLogger.i("QCloudTest", "domainName is " + domainName + ", other is " + taskMetrics.domainName);
258-
259262
if (!TextUtils.isEmpty(domainName) && !TextUtils.isEmpty(taskMetrics.domainName)
260263
&& !domainName.equals(taskMetrics.domainName)) {
261264
return this;
@@ -278,8 +281,6 @@ synchronized public HttpTaskMetrics merge(HttpTaskMetrics taskMetrics) {
278281
httpTaskTookTime += taskMetrics.httpTaskTookTime;
279282
calculateMD5STookTime += taskMetrics.calculateMD5STookTime;
280283
signRequestTookTime += taskMetrics.signRequestTookTime;
281-
QCloudLogger.i("QCloudTest", "upload request size requestBodyByteCount " + requestBodyByteCount);
282-
QCloudLogger.i("QCloudTest", "upload response size responseBodyByteCount " + responseBodyByteCount);
283284
if (taskMetrics.getRemoteAddress() != null) {
284285
remoteAddress = taskMetrics.getRemoteAddress();
285286
}

QCloudFoundation/foundation/src/main/java/com/tencent/qcloud/core/http/OkHttpProxy.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@
2525
import com.tencent.qcloud.core.common.QCloudClientException;
2626
import com.tencent.qcloud.core.common.QCloudServiceException;
2727

28+
import java.io.IOException;
29+
import java.lang.reflect.Field;
30+
import java.net.InetAddress;
31+
import java.util.List;
32+
2833
import okhttp3.Call;
2934
import okhttp3.OkHttpClient;
3035
import okhttp3.Request;
3136
import okhttp3.Response;
3237
import okhttp3.internal.Util;
3338

34-
import java.io.IOException;
35-
import java.lang.reflect.Field;
36-
import java.net.InetAddress;
37-
import java.util.List;
38-
3939
public class OkHttpProxy<T> extends NetworkProxy<T> {
4040

4141
private Call httpCall;
@@ -80,6 +80,7 @@ protected HttpResult<T> executeHttpRequest(HttpRequest<T> httpRequest) throws QC
8080
eventListener = (CallMetricsListener) eventListenerFiled.get(httpCall);
8181
} catch (NoSuchFieldException ignore) {
8282
} catch (IllegalAccessException ignore) {
83+
} catch (ClassCastException ignore) {
8384
}
8485
}
8586

QCloudFoundation/foundation/src/main/java/com/tencent/qcloud/core/http/interceptor/HttpMetricsInterceptor.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.tencent.qcloud.core.http.interceptor;
22

3-
import com.tencent.qcloud.core.http.CallMetricsListener;
3+
import com.tencent.qcloud.core.http.HttpTask;
4+
import com.tencent.qcloud.core.http.HttpTaskMetrics;
5+
import com.tencent.qcloud.core.logger.QCloudLogger;
6+
import com.tencent.qcloud.core.task.TaskManager;
47

58
import java.io.IOException;
69
import java.net.Socket;
710

811
import okhttp3.Connection;
9-
import okhttp3.EventListener;
1012
import okhttp3.Interceptor;
1113
import okhttp3.Request;
1214
import okhttp3.Response;
@@ -26,18 +28,21 @@ public Response intercept(Chain chain) throws IOException {
2628

2729
Request request = chain.request();
2830

29-
if (chain instanceof RealInterceptorChain) {
30-
RealInterceptorChain realChain = (RealInterceptorChain) chain;
31-
Connection connection = chain.connection();
32-
if (connection instanceof RealConnection) {
33-
RealConnection realConnection = (RealConnection) connection;
34-
Socket socket = realConnection.socket();
35-
EventListener eventListener = realChain.eventListener();
36-
if (eventListener instanceof CallMetricsListener && socket != null) {
37-
CallMetricsListener callMetricsListener = (CallMetricsListener) eventListener;
38-
callMetricsListener.recordConnection(socket.getInetAddress());
31+
try {
32+
if (chain instanceof RealInterceptorChain) {
33+
Connection connection = chain.connection();
34+
if (connection instanceof RealConnection) {
35+
RealConnection realConnection = (RealConnection) connection;
36+
Socket socket = realConnection.socket();
37+
HttpTask task = (HttpTask) TaskManager.getInstance().get((String) request.tag());
38+
HttpTaskMetrics metrics = task.metrics();
39+
if (metrics != null) {
40+
metrics.recordConnectAddress(socket.getInetAddress());
41+
}
3942
}
4043
}
44+
} catch (Exception e) {
45+
QCloudLogger.d("HttpMetricsInterceptor", e.getMessage());
4146
}
4247

4348
return chain.proceed(request);

0 commit comments

Comments
 (0)