Skip to content

Commit 105bde2

Browse files
committed
修改bug,优化代码
1 parent 1a96980 commit 105bde2

File tree

11 files changed

+401
-135
lines changed

11 files changed

+401
-135
lines changed
Lines changed: 62 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package cn.springcloud.gray.client.netflix.feign;
22

33
import cn.springcloud.gray.request.GrayHttpTrackInfo;
4-
import cn.springcloud.gray.request.GrayTrackInfo;
4+
import cn.springcloud.gray.request.HttpGrayTrackRecordDevice;
5+
import cn.springcloud.gray.request.HttpGrayTrackRecordHelper;
56
import cn.springcloud.gray.request.RequestLocalStorage;
67
import feign.RequestInterceptor;
78
import feign.RequestTemplate;
8-
import org.apache.commons.collections.MapUtils;
9-
import org.apache.commons.lang3.StringUtils;
109
import org.slf4j.Logger;
1110
import org.slf4j.LoggerFactory;
1211

13-
import java.util.Map;
12+
import java.util.List;
1413

1514

1615
public class GrayTrackFeignRequestInterceptor implements RequestInterceptor {
@@ -30,33 +29,31 @@ public void apply(RequestTemplate template) {
3029
if (grayTrack == null) {
3130
return;
3231
}
33-
if (StringUtils.isNotEmpty(grayTrack.getUri())) {
34-
template.header(GrayHttpTrackInfo.GRAY_TRACK_URI, grayTrack.getUri());
35-
}
36-
if (StringUtils.isNotEmpty(grayTrack.getTraceIp())) {
37-
template.header(GrayHttpTrackInfo.GRAY_TRACK_TRACE_IP, grayTrack.getTraceIp());
38-
}
39-
if (StringUtils.isNotEmpty(grayTrack.getMethod())) {
40-
template.header(GrayHttpTrackInfo.GRAY_TRACK_METHOD, grayTrack.getMethod());
41-
}
42-
if (grayTrack.getParameters() != null && !grayTrack.getParameters().isEmpty()) {
43-
grayTrack.getParameters().entrySet().forEach(entry -> {
44-
String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_PARAMETER_PREFIX)
45-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
46-
.append(entry.getKey()).toString();
47-
template.header(name, entry.getValue());
48-
});
49-
}
50-
if (grayTrack.getHeaders() != null && !grayTrack.getHeaders().isEmpty()) {
51-
grayTrack.getHeaders().entrySet().forEach(entry -> {
52-
String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX)
53-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
54-
.append(entry.getKey()).toString();
55-
template.header(name, entry.getValue());
56-
});
57-
}
58-
59-
appendGrayTrackInfoToHeader(GrayTrackInfo.GRAY_TRACK_ATTRIBUTE_PREFIX, grayTrack.getAttributes(), template);
32+
HttpGrayTrackRecordHelper.record(new FeignHttpGrayTrackRecordDevice(template), grayTrack);
33+
// if (StringUtils.isNotEmpty(grayTrack.getUri())) {
34+
// template.header(GrayHttpTrackInfo.GRAY_TRACK_URI, grayTrack.getUri());
35+
// }
36+
// if (StringUtils.isNotEmpty(grayTrack.getTraceIp())) {
37+
// template.header(GrayHttpTrackInfo.GRAY_TRACK_TRACE_IP, grayTrack.getTraceIp());
38+
// }
39+
// if (StringUtils.isNotEmpty(grayTrack.getMethod())) {
40+
// template.header(GrayHttpTrackInfo.GRAY_TRACK_METHOD, grayTrack.getMethod());
41+
// }
42+
// if (MapUtils.isNotEmpty(grayTrack.getParameters())) {
43+
// appendGrayTrackInfosToHeader(GrayHttpTrackInfo.GRAY_TRACK_PARAMETER_PREFIX, grayTrack.getParameters(), template);
44+
//// String prefix = GrayHttpTrackInfo.GRAY_TRACK_PARAMETER_PREFIX + GrayTrackInfo.GRAY_TRACK_SEPARATE;
45+
//// grayTrack.getParameters().entrySet().forEach(entry -> {
46+
//// template.header(prefix + entry.getKey(), entry.getValue());
47+
//// });
48+
// }
49+
// if (MapUtils.isNotEmpty(grayTrack.getHeaders())) {
50+
// appendGrayTrackInfosToHeader(GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX, grayTrack.getHeaders(), template);
51+
//// String prefix = GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX + GrayTrackInfo.GRAY_TRACK_SEPARATE;
52+
//// grayTrack.getHeaders().entrySet().forEach(entry -> {
53+
//// template.header(prefix + entry.getKey(), entry.getValue());
54+
//// });
55+
// }
56+
// appendGrayTrackInfoToHeader(GrayTrackInfo.GRAY_TRACK_ATTRIBUTE_PREFIX, grayTrack.getAttributes(), template);
6057
}
6158

6259
private GrayHttpTrackInfo getGrayHttpTrackInfo(RequestTemplate template) {
@@ -68,14 +65,40 @@ private GrayHttpTrackInfo getGrayHttpTrackInfo(RequestTemplate template) {
6865
}
6966
}
7067

71-
private void appendGrayTrackInfoToHeader(String grayPrefix, Map<String, String> infos, RequestTemplate template) {
72-
if (MapUtils.isNotEmpty(infos)) {
73-
infos.entrySet().forEach(entry -> {
74-
String name = new StringBuilder().append(grayPrefix)
75-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
76-
.append(entry.getKey()).toString();
77-
template.header(name, entry.getValue());
78-
});
68+
69+
public static class FeignHttpGrayTrackRecordDevice implements HttpGrayTrackRecordDevice {
70+
71+
private RequestTemplate template;
72+
73+
public FeignHttpGrayTrackRecordDevice(RequestTemplate template) {
74+
this.template = template;
75+
}
76+
77+
@Override
78+
public void record(String name, String value) {
79+
template.header(name, value);
80+
}
81+
82+
@Override
83+
public void record(String name, List<String> values) {
84+
template.header(name, values);
7985
}
8086
}
87+
88+
//
89+
// private void appendGrayTrackInfoToHeader(String grayPrefix, Map<String, String> infos, RequestTemplate template) {
90+
// String prefix = grayPrefix + GrayTrackInfo.GRAY_TRACK_SEPARATE;
91+
// if (MapUtils.isNotEmpty(infos)) {
92+
// infos.entrySet().forEach(entry -> {
93+
// template.header(prefix + entry.getKey(), entry.getValue());
94+
// });
95+
// }
96+
// }
97+
//
98+
// private void appendGrayTrackInfosToHeader(String grayPrefix, Map<String, List<String>> infos, RequestTemplate template) {
99+
// String prefix = grayPrefix + GrayTrackInfo.GRAY_TRACK_SEPARATE;
100+
// infos.entrySet().forEach(entry -> {
101+
// template.header(prefix + entry.getKey(), entry.getValue());
102+
// });
103+
// }
81104
}

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/hystrix/HystrixRequestLocalStorage.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class HystrixRequestLocalStorage implements RequestLocalStorage {
99

1010

1111
private static final HystrixRequestVariableDefault<GrayTrackInfo> grayTrackInfoLocal = new HystrixRequestVariableDefault<GrayTrackInfo>();
12-
private static final HystrixRequestVariableDefault<GrayRequest> rrayRequestLocal = new HystrixRequestVariableDefault<GrayRequest>();
12+
private static final HystrixRequestVariableDefault<GrayRequest> grayRequestLocal = new HystrixRequestVariableDefault<GrayRequest>();
1313

1414

1515
@Override
@@ -29,17 +29,17 @@ public GrayTrackInfo getGrayTrackInfo() {
2929

3030
@Override
3131
public void setGrayRequest(GrayRequest grayRequest) {
32-
rrayRequestLocal.set(grayRequest);
32+
grayRequestLocal.set(grayRequest);
3333
}
3434

3535
@Override
3636
public void removeGrayRequest() {
37-
rrayRequestLocal.remove();
37+
grayRequestLocal.remove();
3838
}
3939

4040
@Override
4141
public GrayRequest getGrayRequest() {
42-
return rrayRequestLocal.get();
42+
return grayRequestLocal.get();
4343
}
4444

4545
}

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/resttemplate/RestTemplateRequestInterceptor.java

Lines changed: 59 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44
import cn.springcloud.gray.client.netflix.constants.GrayNetflixClientConstants;
55
import cn.springcloud.gray.request.GrayHttpTrackInfo;
66
import cn.springcloud.gray.request.GrayRequest;
7-
import cn.springcloud.gray.request.GrayTrackInfo;
8-
import org.apache.commons.collections.MapUtils;
9-
import org.apache.commons.lang3.StringUtils;
7+
import cn.springcloud.gray.request.HttpGrayTrackRecordDevice;
8+
import cn.springcloud.gray.request.HttpGrayTrackRecordHelper;
109
import org.springframework.http.HttpHeaders;
1110
import org.springframework.http.HttpRequest;
1211

13-
import java.util.Map;
12+
import java.util.List;
1413

1514
public class RestTemplateRequestInterceptor implements RequestInterceptor {
1615
@Override
@@ -30,45 +29,67 @@ public boolean pre(GrayRequest request) {
3029
HttpRequest httpRequest = (HttpRequest) request.getAttribute(
3130
GrayClientHttpRequestIntercptor.GRAY_REQUEST_ATTRIBUTE_RESTTEMPLATE_REQUEST);
3231
HttpHeaders httpHeaders = httpRequest.getHeaders();
33-
if (StringUtils.isNotEmpty(grayTrack.getUri())) {
34-
httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_URI, grayTrack.getUri());
35-
}
36-
if (StringUtils.isNotEmpty(grayTrack.getTraceIp())) {
37-
httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_TRACE_IP, grayTrack.getTraceIp());
38-
}
39-
if (StringUtils.isNotEmpty(grayTrack.getMethod())) {
40-
httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_METHOD, grayTrack.getMethod());
41-
}
42-
if (grayTrack.getParameters() != null && !grayTrack.getParameters().isEmpty()) {
43-
grayTrack.getParameters().entrySet().forEach(entry -> {
44-
String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_PARAMETER_PREFIX)
45-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
46-
.append(entry.getKey()).toString();
47-
httpHeaders.put(name, entry.getValue());
48-
});
49-
}
50-
if (grayTrack.getHeaders() != null && !grayTrack.getHeaders().isEmpty()) {
51-
grayTrack.getHeaders().entrySet().forEach(entry -> {
52-
String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX)
53-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
54-
.append(entry.getKey()).toString();
55-
httpHeaders.put(name, entry.getValue());
56-
});
57-
}
32+
HttpGrayTrackRecordHelper.record(new RestTemplateHttpGrayTrackRecordDevice(httpHeaders), grayTrack);
5833

59-
Map<String, String> grayAttributes = grayTrack.getAttributes();
60-
if (MapUtils.isNotEmpty(grayAttributes)) {
61-
grayAttributes.entrySet().forEach(entry -> {
62-
String name = new StringBuilder().append(GrayTrackInfo.GRAY_TRACK_ATTRIBUTE_PREFIX)
63-
.append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
64-
.append(entry.getKey()).toString();
65-
httpHeaders.add(name, entry.getValue());
66-
});
67-
}
34+
// if (StringUtils.isNotEmpty(grayTrack.getUri())) {
35+
// httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_URI, grayTrack.getUri());
36+
// }
37+
// if (StringUtils.isNotEmpty(grayTrack.getTraceIp())) {
38+
// httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_TRACE_IP, grayTrack.getTraceIp());
39+
// }
40+
// if (StringUtils.isNotEmpty(grayTrack.getMethod())) {
41+
// httpHeaders.add(GrayHttpTrackInfo.GRAY_TRACK_METHOD, grayTrack.getMethod());
42+
// }
43+
// if (grayTrack.getParameters() != null && !grayTrack.getParameters().isEmpty()) {
44+
// grayTrack.getParameters().entrySet().forEach(entry -> {
45+
// String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_PARAMETER_PREFIX)
46+
// .append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
47+
// .append(entry.getKey()).toString();
48+
// httpHeaders.put(name, entry.getValue());
49+
// });
50+
// }
51+
// if (grayTrack.getHeaders() != null && !grayTrack.getHeaders().isEmpty()) {
52+
// grayTrack.getHeaders().entrySet().forEach(entry -> {
53+
// String name = new StringBuilder().append(GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX)
54+
// .append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
55+
// .append(entry.getKey()).toString();
56+
// httpHeaders.put(name, entry.getValue());
57+
// });
58+
// }
59+
//
60+
// Map<String, String> grayAttributes = grayTrack.getAttributes();
61+
// if (MapUtils.isNotEmpty(grayAttributes)) {
62+
// grayAttributes.entrySet().forEach(entry -> {
63+
// String name = new StringBuilder().append(GrayTrackInfo.GRAY_TRACK_ATTRIBUTE_PREFIX)
64+
// .append(GrayTrackInfo.GRAY_TRACK_SEPARATE)
65+
// .append(entry.getKey()).toString();
66+
// httpHeaders.add(name, entry.getValue());
67+
// });
68+
// }
6869
}
6970
return true;
7071
}
7172

73+
74+
public static class RestTemplateHttpGrayTrackRecordDevice implements HttpGrayTrackRecordDevice {
75+
76+
private HttpHeaders httpHeaders;
77+
78+
public RestTemplateHttpGrayTrackRecordDevice(HttpHeaders httpHeaders) {
79+
this.httpHeaders = httpHeaders;
80+
}
81+
82+
@Override
83+
public void record(String name, String value) {
84+
httpHeaders.set(name, value);
85+
}
86+
87+
@Override
88+
public void record(String name, List<String> values) {
89+
httpHeaders.put(name, values);
90+
}
91+
}
92+
7293
@Override
7394
public boolean after(GrayRequest request) {
7495
return true;

0 commit comments

Comments
 (0)