1
1
package cn .springcloud .gray .client .netflix .feign ;
2
2
3
3
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 ;
5
6
import cn .springcloud .gray .request .RequestLocalStorage ;
6
7
import feign .RequestInterceptor ;
7
8
import feign .RequestTemplate ;
8
- import org .apache .commons .collections .MapUtils ;
9
- import org .apache .commons .lang3 .StringUtils ;
10
9
import org .slf4j .Logger ;
11
10
import org .slf4j .LoggerFactory ;
12
11
13
- import java .util .Map ;
12
+ import java .util .List ;
14
13
15
14
16
15
public class GrayTrackFeignRequestInterceptor implements RequestInterceptor {
@@ -30,33 +29,31 @@ public void apply(RequestTemplate template) {
30
29
if (grayTrack == null ) {
31
30
return ;
32
31
}
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);
60
57
}
61
58
62
59
private GrayHttpTrackInfo getGrayHttpTrackInfo (RequestTemplate template ) {
@@ -68,14 +65,40 @@ private GrayHttpTrackInfo getGrayHttpTrackInfo(RequestTemplate template) {
68
65
}
69
66
}
70
67
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 );
79
85
}
80
86
}
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
+ // }
81
104
}
0 commit comments