Skip to content

Commit 5de0150

Browse files
committed
...
1 parent a691dc1 commit 5de0150

File tree

4 files changed

+72
-43
lines changed

4 files changed

+72
-43
lines changed

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,18 @@
55
import cn.springcloud.gray.client.netflix.connectionpoint.RibbonConnectionPoint;
66
import cn.springcloud.gray.client.netflix.hystrix.HystrixRequestLocalStorage;
77
import cn.springcloud.gray.request.RequestLocalStorage;
8-
import cn.springcloud.gray.request.track.GrayTrackHolder;
9-
import cn.springcloud.gray.web.GrayTrackFilter;
108
import com.netflix.hystrix.HystrixCommand;
11-
import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;
129
import feign.hystrix.HystrixFeign;
1310
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1411
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1512
import org.springframework.context.annotation.Bean;
1613
import org.springframework.context.annotation.Configuration;
17-
18-
import javax.servlet.FilterChain;
19-
import javax.servlet.ServletException;
20-
import javax.servlet.ServletRequest;
21-
import javax.servlet.ServletResponse;
22-
import java.io.IOException;
14+
import org.springframework.context.annotation.Import;
2315

2416
@Configuration
2517
@ConditionalOnBean(GrayManager.class)
2618
@ConditionalOnClass({HystrixCommand.class, HystrixFeign.class})
27-
//@Import(HystrixGrayTrackWebConfiguration.class)
19+
@Import(HystrixGrayTrackWebConfiguration.class)
2820
public class HystrixGrayAutoConfiguration {
2921

3022

@@ -46,24 +38,24 @@ public RibbonConnectionPoint hystrixRibbonConnectionPoint(
4638
}
4739

4840

49-
@Bean
50-
public GrayTrackFilter grayTrackFilter(
51-
GrayTrackHolder grayTrackHolder,
52-
RequestLocalStorage requestLocalStorage) {
53-
return new GrayTrackFilter(grayTrackHolder, requestLocalStorage) {
54-
@Override
55-
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
56-
if (!HystrixRequestContext.isCurrentThreadInitialized()) {
57-
HystrixRequestContext.initializeContext();
58-
}
59-
try {
60-
super.doFilter(request, response, chain);
61-
} finally {
62-
if (HystrixRequestContext.isCurrentThreadInitialized()) {
63-
HystrixRequestContext.getContextForCurrentThread().shutdown();
64-
}
65-
}
66-
}
67-
};
68-
}
41+
// @Bean
42+
// public GrayTrackFilter grayTrackFilter(
43+
// GrayTrackHolder grayTrackHolder,
44+
// RequestLocalStorage requestLocalStorage) {
45+
// return new GrayTrackFilter(grayTrackHolder, requestLocalStorage) {
46+
// @Override
47+
// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
48+
// if (!HystrixRequestContext.isCurrentThreadInitialized()) {
49+
// HystrixRequestContext.initializeContext();
50+
// }
51+
// try {
52+
// super.doFilter(request, response, chain);
53+
// } finally {
54+
// if (HystrixRequestContext.isCurrentThreadInitialized()) {
55+
// HystrixRequestContext.getContextForCurrentThread().shutdown();
56+
// }
57+
// }
58+
// }
59+
// };
60+
// }
6961
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package cn.springcloud.gray.client.netflix.configuration;
2+
3+
import cn.springcloud.gray.request.RequestLocalStorage;
4+
import cn.springcloud.gray.request.track.GrayTrackHolder;
5+
import cn.springcloud.gray.web.GrayTrackFilter;
6+
import com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;
7+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
8+
import org.springframework.context.annotation.Bean;
9+
import org.springframework.context.annotation.Configuration;
10+
11+
import javax.servlet.FilterChain;
12+
import javax.servlet.ServletException;
13+
import javax.servlet.ServletRequest;
14+
import javax.servlet.ServletResponse;
15+
import java.io.IOException;
16+
17+
@Configuration
18+
@ConditionalOnProperty(value = "gray.request.track.enabled", matchIfMissing = true)
19+
public class HystrixGrayTrackWebConfiguration {
20+
21+
22+
@Bean
23+
@ConditionalOnProperty(value = "gray.client.runenv", havingValue = "web", matchIfMissing = true)
24+
public GrayTrackFilter grayTrackFilter(
25+
GrayTrackHolder grayTrackHolder,
26+
RequestLocalStorage requestLocalStorage) {
27+
return new GrayTrackFilter(grayTrackHolder, requestLocalStorage) {
28+
@Override
29+
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
30+
if (!HystrixRequestContext.isCurrentThreadInitialized()) {
31+
HystrixRequestContext.initializeContext();
32+
}
33+
try {
34+
super.doFilter(request, response, chain);
35+
} finally {
36+
if (HystrixRequestContext.isCurrentThreadInitialized()) {
37+
HystrixRequestContext.getContextForCurrentThread().shutdown();
38+
}
39+
}
40+
}
41+
};
42+
}
43+
}

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixGrayAutoConfiguration.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import cn.springcloud.gray.client.netflix.connectionpoint.RibbonConnectionPoint;
66
import cn.springcloud.gray.client.netflix.ribbon.configuration.GrayRibbonClientsConfiguration;
77
import cn.springcloud.gray.request.RequestLocalStorage;
8-
import org.springframework.beans.factory.annotation.Autowired;
98
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
109
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
1110
import org.springframework.cloud.netflix.ribbon.RibbonClients;
@@ -18,15 +17,10 @@
1817
public class NetflixGrayAutoConfiguration {
1918

2019

21-
@Autowired
22-
private GrayManager grayManager;
23-
@Autowired
24-
private RequestLocalStorage requestLocalStorage;
25-
26-
2720
@Bean
2821
@ConditionalOnMissingBean
29-
public RibbonConnectionPoint ribbonConnectionPoint() {
22+
public RibbonConnectionPoint ribbonConnectionPoint(
23+
GrayManager grayManager, RequestLocalStorage requestLocalStorage) {
3024
return new DefaultRibbonConnectionPoint(grayManager, requestLocalStorage);
3125
}
3226

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/configuration/GrayZuulAutoConfiguration.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@
1616
import org.springframework.context.annotation.Configuration;
1717

1818
@Configuration
19-
@ConditionalOnBean(GrayManager.class)
19+
@ConditionalOnBean(
20+
value = {GrayManager.class},
21+
name = {"zuulServlet"})
2022
@ConditionalOnClass(value = ZuulServlet.class)
2123
public class GrayZuulAutoConfiguration {
2224

2325
@Autowired
2426
private GrayRequestProperties grayRequestProperties;
25-
@Autowired
26-
private RibbonConnectionPoint ribbonConnectionPoint;
2727

2828
@Bean
29-
public GrayPreZuulFilter grayPreZuulFilter() {
29+
public GrayPreZuulFilter grayPreZuulFilter(RibbonConnectionPoint ribbonConnectionPoint) {
3030
return new GrayPreZuulFilter(grayRequestProperties, ribbonConnectionPoint);
3131
}
3232

3333
@Bean
34-
public GrayPostZuulFilter grayPostZuulFilter() {
34+
public GrayPostZuulFilter grayPostZuulFilter(RibbonConnectionPoint ribbonConnectionPoint) {
3535
return new GrayPostZuulFilter(ribbonConnectionPoint);
3636
}
3737

0 commit comments

Comments
 (0)