From 2ac56af0a4053fc8f896f465720dd5c5ec5d2865 Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 13:27:53 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gray/client/config/GrayEventAutoConfiguration.java | 4 +++- .../springcloud/gray/event/DefaultGrayEventListener.java | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayEventAutoConfiguration.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayEventAutoConfiguration.java index f946ffb4..27b2ff99 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayEventAutoConfiguration.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayEventAutoConfiguration.java @@ -7,6 +7,7 @@ import cn.springcloud.gray.event.stream.StreamInput; import cn.springcloud.gray.event.stream.StreamMessageListener; import cn.springcloud.gray.request.track.CommunicableGrayTrackHolder; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -23,7 +24,8 @@ public class GrayEventAutoConfiguration { @Bean @ConditionalOnMissingBean public GrayEventListener grayEventListener( - CommunicableGrayTrackHolder grayTrackHolder, CommunicableGrayManager grayManager) { + @Autowired(required = false) CommunicableGrayTrackHolder grayTrackHolder, + CommunicableGrayManager grayManager) { return new DefaultGrayEventListener(grayTrackHolder, grayManager); } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/event/DefaultGrayEventListener.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/event/DefaultGrayEventListener.java index 8d8f44e8..4288a33b 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/event/DefaultGrayEventListener.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/event/DefaultGrayEventListener.java @@ -9,10 +9,7 @@ import cn.springcloud.gray.request.track.CommunicableGrayTrackHolder; import org.apache.commons.lang3.StringUtils; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.function.Consumer; /** @@ -85,6 +82,9 @@ private void handleGrayTrack(GrayEventMsg msg) { && !StringUtils.equals(msg.getInstanceId(), instanceLocalInfo.getInstanceId())) { return; } + if (Objects.isNull(grayTrackHolder)) { + return; + } GrayTrackDefinition definition = (GrayTrackDefinition) msg.getExtra(); if (definition == null) { From aa7bd8101c24f53e9e1f6f19e834310e1fa18b10 Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 16:53:01 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...on.java => NetflixRibbonGrayAutoConfiguration.java} | 2 +- .../configuration/GrayFeignClientsConfiguration.java | 4 +--- .../src/main/resources/META-INF/spring.factories | 10 +++++----- 3 files changed, 7 insertions(+), 9 deletions(-) rename spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/{NetflixGrayAutoConfiguration.java => NetflixRibbonGrayAutoConfiguration.java} (95%) diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixGrayAutoConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixRibbonGrayAutoConfiguration.java similarity index 95% rename from spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixGrayAutoConfiguration.java rename to spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixRibbonGrayAutoConfiguration.java index bfa695e7..469d71fa 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixGrayAutoConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/NetflixRibbonGrayAutoConfiguration.java @@ -14,7 +14,7 @@ @Configuration @ConditionalOnBean(GrayManager.class) @RibbonClients(defaultConfiguration = GrayRibbonClientsConfiguration.class) -public class NetflixGrayAutoConfiguration { +public class NetflixRibbonGrayAutoConfiguration { @Bean diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignClientsConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignClientsConfiguration.java index ccec4ad5..cbeb290b 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignClientsConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignClientsConfiguration.java @@ -15,12 +15,10 @@ public class GrayFeignClientsConfiguration { @Autowired private Client feignClient; @Autowired - private RibbonConnectionPoint ribbonConnectionPoint; - @Autowired private GrayRequestProperties grayRequestProperties; @Bean - public Client getFeignClient() { + public Client getFeignClient(RibbonConnectionPoint ribbonConnectionPoint) { return new GrayFeignClient(feignClient, ribbonConnectionPoint, grayRequestProperties); } diff --git a/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories index 0b2ea614..ebfb0d01 100644 --- a/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories @@ -4,10 +4,10 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ cn.springcloud.gray.client.config.GrayClientAutoConfiguration,\ cn.springcloud.gray.client.config.GrayClientWebConfiguration,\ - cn.springcloud.gray.client.netflix.configuration.NetflixGrayAutoConfiguration,\ cn.springcloud.gray.client.netflix.configuration.GrayClientEurekaAutoConfiguration,\ - cn.springcloud.gray.client.netflix.feign.configuration.GrayFeignAutoConfiguration,\ - cn.springcloud.gray.client.netflix.zuul.configuration.GrayZuulAutoConfiguration,\ + cn.springcloud.gray.client.netflix.configuration.NetflixRibbonGrayAutoConfiguration,\ cn.springcloud.gray.client.netflix.resttemplate.configuration.GrayRestTemplateAutoConfiguration,\ - cn.springcloud.gray.client.config.GrayEventAutoConfiguration,\ -cn.springcloud.gray.client.config.GrayClientBeanPostProcessorConfiguration \ No newline at end of file + cn.springcloud.gray.client.netflix.zuul.configuration.GrayZuulAutoConfiguration,\ +cn.springcloud.gray.client.netflix.feign.configuration.GrayFeignAutoConfiguration,\ +cn.springcloud.gray.client.config.GrayEventAutoConfiguration,\ +cn.springcloud.gray.client.config.GrayClientBeanPostProcessorConfiguration From db560c483838249a66abffb300b153d1e9a7814a Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 17:32:59 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dfeign=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?RibbonConnectionPoint=E5=90=8E=EF=BC=8C=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=8A=A5No=20ServletContext=20set=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GrayDecisionFactoryConfiguration.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayDecisionFactoryConfiguration.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayDecisionFactoryConfiguration.java index 56068301..275783ed 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayDecisionFactoryConfiguration.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayDecisionFactoryConfiguration.java @@ -3,11 +3,9 @@ import cn.springcloud.gray.decision.DefaultGrayDecisionFactoryKeeper; import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper; import cn.springcloud.gray.decision.factory.*; -import org.apache.commons.collections.CollectionUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.validation.Validator; @@ -41,13 +39,22 @@ public TraceIpGrayDecisionFactory traceIpGrayDecisionFactory() { } } + + /** + * 不可引入spring mvc中的ConversionService, 否则会导致feign 加载时,找不到ServletContext, 从而出现异常:No ServletContext set + * + * @param validator 校验器 + * @param decisionFactories 灰度决策工厂类列表 + * @return 灰度决策工厂管理器 + */ @Bean @ConditionalOnMissingBean public GrayDecisionFactoryKeeper grayDecisionFactoryKeeper( - List conversionServices, Validator validator, List decisionFactories) { - if (CollectionUtils.isNotEmpty(conversionServices)) { - return new DefaultGrayDecisionFactoryKeeper(conversionServices.get(0), validator, decisionFactories); - } + /*List conversionServices, */ + Validator validator, List decisionFactories) { +// if (CollectionUtils.isNotEmpty(conversionServices)) { +// return new DefaultGrayDecisionFactoryKeeper(conversionServices.get(0), validator, decisionFactories); +// } return new DefaultGrayDecisionFactoryKeeper(DefaultConversionService.getSharedInstance(), validator, decisionFactories); } From cef09a43560d81986a3488497f60cd3cd938e1f5 Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 17:57:12 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=BC=98=E5=8C=96GrayClientHolder?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netflix/ribbon/GrayLoadBalanceRule.java | 2 +- .../GrayRibbonClientsConfiguration.java | 26 ++++-------- .../springcloud/gray}/GrayClientHolder.java | 14 +++---- .../gray/GrayClientInitializer.java | 41 +++++++++++++++++++ .../config/GrayClientAutoConfiguration.java | 6 +++ .../GrayServerInitializingDestroyBean.java | 7 +++- 6 files changed, 67 insertions(+), 29 deletions(-) rename {spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix => spring-cloud-gray-client/src/main/java/cn/springcloud/gray}/GrayClientHolder.java (68%) create mode 100644 spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/GrayLoadBalanceRule.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/GrayLoadBalanceRule.java index 8dab424e..6a4ca105 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/GrayLoadBalanceRule.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/GrayLoadBalanceRule.java @@ -1,7 +1,7 @@ package cn.springcloud.gray.client.netflix.ribbon; +import cn.springcloud.gray.GrayClientHolder; import cn.springcloud.gray.GrayManager; -import cn.springcloud.gray.client.netflix.GrayClientHolder; import cn.springcloud.gray.model.GrayService; import cn.springcloud.gray.request.GrayRequest; import cn.springcloud.gray.request.RequestLocalStorage; diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/configuration/GrayRibbonClientsConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/configuration/GrayRibbonClientsConfiguration.java index 3d7d07d2..e5cd1015 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/configuration/GrayRibbonClientsConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/ribbon/configuration/GrayRibbonClientsConfiguration.java @@ -1,40 +1,28 @@ package cn.springcloud.gray.client.netflix.ribbon.configuration; import cn.springcloud.gray.GrayManager; -import cn.springcloud.gray.client.netflix.GrayClientHolder; import cn.springcloud.gray.client.netflix.ribbon.GrayLoadBalanceRule; -import cn.springcloud.gray.servernode.ServerExplainer; import cn.springcloud.gray.request.RequestLocalStorage; +import cn.springcloud.gray.servernode.ServerExplainer; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.Server; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -public class GrayRibbonClientsConfiguration implements InitializingBean { - - @Autowired - private GrayManager grayManager; - @Autowired - private RequestLocalStorage requestLocalStorage; - @Autowired - private ServerExplainer serverExplainer; +public class GrayRibbonClientsConfiguration { @Bean - public IRule ribbonRule(@Autowired(required = false) IClientConfig config) { + public IRule ribbonRule( + @Autowired(required = false) IClientConfig config, + GrayManager grayManager, + RequestLocalStorage requestLocalStorage, + ServerExplainer serverExplainer) { GrayLoadBalanceRule rule = new GrayLoadBalanceRule(grayManager, requestLocalStorage, serverExplainer); rule.initWithNiwsConfig(config); return rule; } - - @Override - public void afterPropertiesSet() throws Exception { - GrayClientHolder.setGrayManager(grayManager); - GrayClientHolder.setRequestLocalStorage(requestLocalStorage); - GrayClientHolder.setServerExplainer(serverExplainer); - } } diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/GrayClientHolder.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientHolder.java similarity index 68% rename from spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/GrayClientHolder.java rename to spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientHolder.java index 3635a545..0ff9a937 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/GrayClientHolder.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientHolder.java @@ -1,15 +1,13 @@ -package cn.springcloud.gray.client.netflix; +package cn.springcloud.gray; -import cn.springcloud.gray.GrayManager; -import cn.springcloud.gray.servernode.ServerExplainer; import cn.springcloud.gray.request.RequestLocalStorage; -import com.netflix.loadbalancer.Server; +import cn.springcloud.gray.servernode.ServerExplainer; public class GrayClientHolder { private static GrayManager grayManager; private static RequestLocalStorage requestLocalStorage; - private static ServerExplainer serverExplainer; + private static ServerExplainer serverExplainer; public static GrayManager getGrayManager() { return grayManager; @@ -27,11 +25,11 @@ public static void setRequestLocalStorage(RequestLocalStorage requestLocalStorag GrayClientHolder.requestLocalStorage = requestLocalStorage; } - public static ServerExplainer getServerExplainer() { - return serverExplainer; + public static ServerExplainer getServerExplainer() { + return (ServerExplainer) serverExplainer; } - public static void setServerExplainer(ServerExplainer serverExplainer) { + public static void setServerExplainer(ServerExplainer serverExplainer) { GrayClientHolder.serverExplainer = serverExplainer; } } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java new file mode 100644 index 00000000..68955d3e --- /dev/null +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java @@ -0,0 +1,41 @@ +package cn.springcloud.gray; + +import cn.springcloud.gray.request.RequestLocalStorage; +import cn.springcloud.gray.servernode.ServerExplainer; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; + +@Slf4j +public class GrayClientInitializer implements ApplicationContextAware, InitializingBean { + private ApplicationContext cxt; + + @Override + public void afterPropertiesSet() throws Exception { + GrayClientHolder.setGrayManager(getBean("grayManager", GrayManager.class)); + GrayClientHolder.setRequestLocalStorage(getBean("requestLocalStorage", RequestLocalStorage.class)); + GrayClientHolder.setServerExplainer(getBean("serverExplainer", ServerExplainer.class)); + } + + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.cxt = applicationContext; + } + + + private T getBean(String beanName, Class cls) { + T t = null; + try { + t = cxt.getBean(beanName, cls); + } catch (BeansException e) { + log.warn("没有从spring容器中找到name为'{}', class为'{}'的Bean", beanName, cls); + } + if (t == null) { + t = cxt.getBean(cls); + } + return t; + } +} diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java index 93db2742..0fcaae29 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java @@ -64,4 +64,10 @@ public RequestLocalStorage requestLocalStorage() { return new ThreadLocalRequestStorage(); } + + @Bean + public GrayClientInitializer grayClientInitializer() { + return new GrayClientInitializer(); + } + } diff --git a/spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/GrayServerInitializingDestroyBean.java b/spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/GrayServerInitializingDestroyBean.java index cc8af317..28f97ffd 100644 --- a/spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/GrayServerInitializingDestroyBean.java +++ b/spring-cloud-gray-server/src/main/java/cn/springcloud/gray/server/GrayServerInitializingDestroyBean.java @@ -73,7 +73,12 @@ private void initGrayInstanceRecordEvictionTask() { } private T getBean(String beanName, Class cls) { - T t = appCxt.getBean(beanName, cls); + T t = null; + try { + t = appCxt.getBean(beanName, cls); + } catch (BeansException e) { + log.warn("没有从spring容器中找到name为'{}', class为'{}'的Bean", beanName, cls); + } if (t == null) { t = appCxt.getBean(cls); } From 1c2f57fb66d18007131c991d798c981e1b35eb09 Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 18:20:25 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E4=BC=98=E5=8C=96GrayManger=E5=8A=A0?= =?UTF-8?q?=E8=BD=BDSping=E5=AE=B9=E5=99=A8=E4=B8=AD=E7=9A=84RequestInterc?= =?UTF-8?q?eptor=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gray/AbstractCommunicableGrayManager.java | 9 ++-- .../springcloud/gray/AbstractGrayManager.java | 41 +++++++++---------- .../springcloud/gray/DefaultGrayManager.java | 3 +- .../gray/GrayClientInitializer.java | 17 ++++++++ .../java/cn/springcloud/gray/GrayManager.java | 1 - .../springcloud/gray/SimpleGrayManager.java | 5 +-- .../config/GrayClientAutoConfiguration.java | 6 +-- .../a/configuration/GraylConfiguration.java | 4 +- .../b/configuration/GraylConfiguration.java | 4 +- .../configuration/GraylConfiguration.java | 4 +- 10 files changed, 54 insertions(+), 40 deletions(-) diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractCommunicableGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractCommunicableGrayManager.java index b915c3db..dcaa6a21 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractCommunicableGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractCommunicableGrayManager.java @@ -3,17 +3,16 @@ import cn.springcloud.gray.communication.InformationClient; import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper; -import java.util.List; - public abstract class AbstractCommunicableGrayManager extends SimpleGrayManager implements CommunicableGrayManager { private GrayClientConfig grayClientConfig; private InformationClient informationClient; public AbstractCommunicableGrayManager( - GrayClientConfig grayClientConfig, GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, - List requestInterceptors, InformationClient informationClient) { - super(grayDecisionFactoryKeeper, requestInterceptors); + GrayClientConfig grayClientConfig, + GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, + InformationClient informationClient) { + super(grayDecisionFactoryKeeper); this.grayClientConfig = grayClientConfig; this.informationClient = informationClient; } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java index c14e5e3e..37705421 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java @@ -1,9 +1,8 @@ package cn.springcloud.gray; import cn.springcloud.gray.decision.GrayDecision; -import cn.springcloud.gray.decision.MultiGrayDecision; -import cn.springcloud.gray.decision.factory.GrayDecisionFactory; import cn.springcloud.gray.decision.GrayDecisionFactoryKeeper; +import cn.springcloud.gray.decision.MultiGrayDecision; import cn.springcloud.gray.model.DecisionDefinition; import cn.springcloud.gray.model.GrayInstance; import cn.springcloud.gray.model.PolicyDefinition; @@ -29,8 +28,7 @@ public abstract class AbstractGrayManager implements GrayManager { public AbstractGrayManager( - GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, List requestInterceptors) { - initRequestInterceptors(requestInterceptors); + GrayDecisionFactoryKeeper grayDecisionFactoryKeeper) { this.grayDecisionFactoryKeeper = grayDecisionFactoryKeeper; } @@ -78,31 +76,32 @@ private GrayDecision createGrayDecision(PolicyDefinition policyDefinition) { } - private void initRequestInterceptors(List requestInterceptors) { - if (requestInterceptors == null || requestInterceptors.isEmpty()) { - return; - } - List all = new ArrayList<>(); - for (RequestInterceptor interceptor : requestInterceptors) { - if (StringUtils.equals(interceptor.interceptroType(), "all")) { - all.add(interceptor); - } else { - List interceptors = this.requestInterceptors.get(interceptor.interceptroType()); - if (interceptors == null) { - interceptors = new ArrayList<>(); - this.requestInterceptors.put(interceptor.interceptroType(), interceptors); + public void setRequestInterceptors(Collection requestInterceptors) { + Map> requestInterceptorMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(requestInterceptors)) { + List all = new ArrayList<>(); + for (RequestInterceptor interceptor : requestInterceptors) { + if (StringUtils.equals(interceptor.interceptroType(), "all")) { + all.add(interceptor); + } else { + List interceptors = requestInterceptorMap.get(interceptor.interceptroType()); + if (interceptors == null) { + interceptors = new ArrayList<>(); + requestInterceptorMap.put(interceptor.interceptroType(), interceptors); + } + interceptors.add(interceptor); } - interceptors.add(interceptor); } + putTypeAllTo(requestInterceptorMap, all); } - putTypeAllTo(all); + this.requestInterceptors = requestInterceptorMap; } - private void putTypeAllTo(List all) { + private void putTypeAllTo(Map> requestInterceptorMap, List all) { if (all.isEmpty()) { return; } - requestInterceptors.values().forEach(list -> { + requestInterceptorMap.values().forEach(list -> { list.addAll(all); OrderComparator.sort(list); }); diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java index 9e6c14a4..07528c2d 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java @@ -24,9 +24,8 @@ public DefaultGrayManager( GrayClientConfig grayClientConfig, GrayLoadProperties grayLoadProperties, GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, - List requestInterceptors, InformationClient informationClient) { - super(grayClientConfig, grayDecisionFactoryKeeper, requestInterceptors, informationClient); + super(grayClientConfig, grayDecisionFactoryKeeper, informationClient); this.grayLoadProperties = grayLoadProperties; openForWork(); } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java index 68955d3e..20ebcb33 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java @@ -8,6 +8,8 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import java.util.Map; + @Slf4j public class GrayClientInitializer implements ApplicationContextAware, InitializingBean { private ApplicationContext cxt; @@ -17,6 +19,9 @@ public void afterPropertiesSet() throws Exception { GrayClientHolder.setGrayManager(getBean("grayManager", GrayManager.class)); GrayClientHolder.setRequestLocalStorage(getBean("requestLocalStorage", RequestLocalStorage.class)); GrayClientHolder.setServerExplainer(getBean("serverExplainer", ServerExplainer.class)); + + initGrayManagerRequestInterceptors(); + } @@ -38,4 +43,16 @@ private T getBean(String beanName, Class cls) { } return t; } + + + /** + * 为了解耦合,特别将GrayManger加载Sping容器中的RequestInterceptor的逻辑独立出来 + */ + private void initGrayManagerRequestInterceptors() { + Map requestInterceptors = cxt.getBeansOfType(RequestInterceptor.class); + GrayManager grayManager = GrayClientHolder.getGrayManager(); + if (grayManager instanceof AbstractGrayManager) { + ((AbstractGrayManager) grayManager).setRequestInterceptors(requestInterceptors.values()); + } + } } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java index 5372325f..90d4ac15 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java @@ -42,6 +42,5 @@ public interface GrayManager { List getRequeestInterceptors(String interceptroType); - void shutdown(); } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java index e7065b89..b8c79447 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java @@ -7,7 +7,6 @@ import java.util.Collection; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.locks.Lock; @@ -21,8 +20,8 @@ public class SimpleGrayManager extends AbstractGrayManager { protected Lock lock = new ReentrantLock(); - public SimpleGrayManager(GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, List requestInterceptors) { - super(grayDecisionFactoryKeeper, requestInterceptors); + public SimpleGrayManager(GrayDecisionFactoryKeeper grayDecisionFactoryKeeper) { + super(grayDecisionFactoryKeeper); } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java index 0fcaae29..de2a9d1f 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java @@ -18,8 +18,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import java.util.List; - @Configuration @EnableConfigurationProperties( {GrayClientProperties.class, @@ -42,11 +40,9 @@ public class GrayClientAutoConfiguration { public GrayManager grayManager( @Autowired(required = false) GrayLoadProperties grayLoadProperties, GrayDecisionFactoryKeeper grayDecisionFactoryKeeper, - @Autowired(required = false) List requestInterceptors, @Autowired(required = false) InformationClient informationClient) { return new DefaultGrayManager( - grayClientProperties, grayLoadProperties, grayDecisionFactoryKeeper, - requestInterceptors, informationClient); + grayClientProperties, grayLoadProperties, grayDecisionFactoryKeeper, informationClient); } diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/src/main/java/cn/springcloud/service/a/configuration/GraylConfiguration.java b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/src/main/java/cn/springcloud/service/a/configuration/GraylConfiguration.java index ca770727..9b0757b4 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/src/main/java/cn/springcloud/service/a/configuration/GraylConfiguration.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/src/main/java/cn/springcloud/service/a/configuration/GraylConfiguration.java @@ -18,7 +18,9 @@ public class GraylConfiguration { @Bean public SimpleGrayManager grayManager() { - return new SimpleGrayManager(grayDecisionFactoryKeeper, requestInterceptors); + SimpleGrayManager simpleGrayManager = new SimpleGrayManager(grayDecisionFactoryKeeper); + simpleGrayManager.setRequestInterceptors(requestInterceptors); + return simpleGrayManager; } diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/configuration/GraylConfiguration.java b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/configuration/GraylConfiguration.java index d1b3495a..34d1a978 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/configuration/GraylConfiguration.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/configuration/GraylConfiguration.java @@ -18,7 +18,9 @@ public class GraylConfiguration { @Bean public SimpleGrayManager grayManager() { - return new SimpleGrayManager(grayDecisionFactoryKeeper, requestInterceptors); + SimpleGrayManager simpleGrayManager = new SimpleGrayManager(grayDecisionFactoryKeeper); + simpleGrayManager.setRequestInterceptors(requestInterceptors); + return simpleGrayManager; } diff --git a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/java/cn/springcloud/gray/zuul/configuration/GraylConfiguration.java b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/java/cn/springcloud/gray/zuul/configuration/GraylConfiguration.java index 5174bfd2..573f9a0e 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/java/cn/springcloud/gray/zuul/configuration/GraylConfiguration.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/java/cn/springcloud/gray/zuul/configuration/GraylConfiguration.java @@ -19,7 +19,9 @@ public class GraylConfiguration { @Bean public GrayManager grayManager() { - return new SimpleGrayManager(grayDecisionFactoryKeeper, requestInterceptors); + SimpleGrayManager simpleGrayManager = new SimpleGrayManager(grayDecisionFactoryKeeper); + simpleGrayManager.setRequestInterceptors(requestInterceptors); + return simpleGrayManager; } From 0ca0dedc2a62da838282deeb7a98f2fe0d0504d2 Mon Sep 17 00:00:00 2001 From: saleson Date: Tue, 28 May 2019 19:21:21 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=81=B0=E5=BA=A6?= =?UTF-8?q?=E8=BF=BD=E8=B8=AA=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springcloud/gray/AbstractGrayManager.java | 8 ++++++-- .../tracker/HttpHeaderGrayInfoTracker.java | 8 ++++++-- .../service/a/rest/TestResource.java | 17 ++++++++++++++++- .../gray/service/b/rest/TestResource.java | 19 ++++++++++++++++++- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java index 37705421..03b5e305 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/AbstractGrayManager.java @@ -25,6 +25,7 @@ public abstract class AbstractGrayManager implements GrayManager { private GrayDecisionFactoryKeeper grayDecisionFactoryKeeper; private Map> requestInterceptors = new HashMap<>(); + private List communalRequestInterceptors = ListUtils.EMPTY_LIST; public AbstractGrayManager( @@ -37,7 +38,7 @@ public AbstractGrayManager( public List getRequeestInterceptors(String interceptroType) { List list = requestInterceptors.get(interceptroType); if (list == null) { - return ListUtils.EMPTY_LIST; + return communalRequestInterceptors; } return list; } @@ -78,8 +79,8 @@ private GrayDecision createGrayDecision(PolicyDefinition policyDefinition) { public void setRequestInterceptors(Collection requestInterceptors) { Map> requestInterceptorMap = new HashMap<>(); + List all = new ArrayList<>(); if (CollectionUtils.isNotEmpty(requestInterceptors)) { - List all = new ArrayList<>(); for (RequestInterceptor interceptor : requestInterceptors) { if (StringUtils.equals(interceptor.interceptroType(), "all")) { all.add(interceptor); @@ -93,8 +94,11 @@ public void setRequestInterceptors(Collection requestInterce } } putTypeAllTo(requestInterceptorMap, all); + this.communalRequestInterceptors = all; } + this.communalRequestInterceptors = all; this.requestInterceptors = requestInterceptorMap; + } private void putTypeAllTo(Map> requestInterceptorMap, List all) { diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/web/tracker/HttpHeaderGrayInfoTracker.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/web/tracker/HttpHeaderGrayInfoTracker.java index fae0041c..290931c7 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/web/tracker/HttpHeaderGrayInfoTracker.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/web/tracker/HttpHeaderGrayInfoTracker.java @@ -6,7 +6,9 @@ import org.springframework.util.StringUtils; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Enumeration; +import java.util.List; @Slf4j public class HttpHeaderGrayInfoTracker implements HttpGrayInfoTracker { @@ -23,11 +25,13 @@ public void call(TrackArgs args) { for (String header : defValue.split(",")) { Enumeration headerValues = request.getHeaders(header); + List values = new ArrayList<>(); while (headerValues.hasMoreElements()) { String value = headerValues.nextElement(); - trackInfo.addHeader(header, value); - log.debug("记录下header:{} -> {}", header, value); + values.add(value); } + log.debug("记录下header:{} -> {}", header, values); + trackInfo.setHeader(header, values); } } } diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/java/cn/springcloud/service/a/rest/TestResource.java b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/java/cn/springcloud/service/a/rest/TestResource.java index ed783baf..bef6fe64 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/java/cn/springcloud/service/a/rest/TestResource.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/java/cn/springcloud/service/a/rest/TestResource.java @@ -1,11 +1,15 @@ package cn.springcloud.service.a.rest; +import cn.springcloud.gray.request.GrayHttpTrackInfo; import com.google.common.collect.ImmutableMap; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; import java.util.Map; /** @@ -13,13 +17,24 @@ */ @RestController @RequestMapping("/api/test") +@Slf4j public class TestResource { @Autowired Environment env; @RequestMapping(value = "/get", method = RequestMethod.GET) @ResponseBody - public Map testGet(@RequestParam(value = "version", required = false) String version) { + public Map testGet( + @RequestParam(value = "version", required = false) String version, + HttpServletRequest request) { + Enumeration names = request.getHeaderNames(); + while (names.hasMoreElements()) { + String name = names.nextElement(); + if (StringUtils.startsWith(name, GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX)) { + log.info("{}:{}", name, request.getHeader(name)); + } + } + request.getHeader(""); return ImmutableMap.of("test", "success.", "version", StringUtils.defaultIfEmpty(version, ""), "serverPort", env.getProperty("server.port")); } diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/rest/TestResource.java b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/rest/TestResource.java index 9e114290..ea9fe065 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/rest/TestResource.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/java/cn/springcloud/gray/service/b/rest/TestResource.java @@ -1,13 +1,16 @@ package cn.springcloud.gray.service.b.rest; +import cn.springcloud.gray.request.GrayHttpTrackInfo; import cn.springcloud.gray.service.b.feign.TestClient; import com.google.common.collect.ImmutableMap; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; import java.util.Map; /** @@ -15,6 +18,7 @@ */ @RestController @RequestMapping("/api/test") +@Slf4j public class TestResource { @Autowired private RestTemplate restTemplate; @@ -57,7 +61,20 @@ public Map restTemplateGet(HttpServletRequest request) { */ @RequestMapping(value = "/feignGet", method = RequestMethod.GET) @ResponseBody - public Map feignGet(@RequestParam(value = "version", required = false) String version) { + public Map feignGet( + @RequestParam(value = "version", required = false) String version, + HttpServletRequest request) { + Enumeration names = request.getHeaderNames(); + while (names.hasMoreElements()) { + String name = names.nextElement(); + if (org.apache.commons.lang.StringUtils.startsWith(name, GrayHttpTrackInfo.GRAY_TRACK_HEADER_PREFIX)) { + log.info("{}:{}", name, request.getHeader(name)); + Enumeration values = request.getHeaders(name); + while (values.hasMoreElements()) { + System.out.println(values.nextElement()); + } + } + } Map map = testClient.testGet(version); return ImmutableMap.of("feignGet", "success.", "service-a-result", map); } From 02611db5ec38233bdadfbb9cd79421188a712348 Mon Sep 17 00:00:00 2001 From: saleson Date: Wed, 29 May 2019 13:53:21 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- spring-cloud-gray-client-netflix/pom.xml | 2 +- spring-cloud-gray-client/pom.xml | 2 +- spring-cloud-gray-core/pom.xml | 2 +- spring-cloud-gray-dependencies/pom.xml | 4 ++-- spring-cloud-gray-samples/pom.xml | 2 +- .../spring-cloud-gray-eureka-sample/pom.xml | 4 ++-- .../spring-cloud-gray-server-sample/pom.xml | 2 +- .../spring-cloud-gray-service-a-sample/pom.xml | 2 +- .../spring-cloud-gray-service-a1-sample/pom.xml | 2 +- .../spring-cloud-gray-service-b-sample/pom.xml | 2 +- .../spring-cloud-gray-stream-sample/pom.xml | 2 +- .../spring-cloud-gray-zuul-sample/pom.xml | 2 +- spring-cloud-gray-server/pom.xml | 2 +- spring-cloud-gray-starter-dependencies/pom.xml | 2 +- spring-cloud-gray-utils/pom.xml | 2 +- spring-cloud-gray-webui/pom.xml | 2 +- spring-cloud-starter-gray-client/pom.xml | 2 +- spring-cloud-starter-gray-eureka-server/pom.xml | 2 +- spring-cloud-starter-gray-server/pom.xml | 2 +- 20 files changed, 22 insertions(+), 22 deletions(-) diff --git a/pom.xml b/pom.xml index 65e65cb9..09377df5 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ cn.springcloud.gray spring-cloud-gray pom - A.1.0.1 + A.1.0.2 https://github.com/SpringCloud/spring-cloud-gray Spring Cloud中国社区 diff --git a/spring-cloud-gray-client-netflix/pom.xml b/spring-cloud-gray-client-netflix/pom.xml index 3610ffd5..b65dcc7d 100644 --- a/spring-cloud-gray-client-netflix/pom.xml +++ b/spring-cloud-gray-client-netflix/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-client/pom.xml b/spring-cloud-gray-client/pom.xml index b0945dec..0ab30710 100644 --- a/spring-cloud-gray-client/pom.xml +++ b/spring-cloud-gray-client/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-core/pom.xml b/spring-cloud-gray-core/pom.xml index b7081de1..18c59f1d 100644 --- a/spring-cloud-gray-core/pom.xml +++ b/spring-cloud-gray-core/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-dependencies/pom.xml b/spring-cloud-gray-dependencies/pom.xml index 4127be79..f430e55e 100644 --- a/spring-cloud-gray-dependencies/pom.xml +++ b/spring-cloud-gray-dependencies/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 @@ -17,7 +17,7 @@ cn.springcloud.gray spring-cloud-gray-dependencies - A.1.0.1 + A.1.0.2 pom diff --git a/spring-cloud-gray-samples/pom.xml b/spring-cloud-gray-samples/pom.xml index abed80b9..7605ea13 100644 --- a/spring-cloud-gray-samples/pom.xml +++ b/spring-cloud-gray-samples/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml index 5ce4fb36..f7d784f7 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 @@ -20,7 +20,7 @@ spring-cloud-gray-utils cn.springcloud.gray - A.1.0.1 + A.1.0.2 org.springframework.boot diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml index 16ea7e64..1a005cb8 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml index a6a45458..405c09e2 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml index bcc3177f..c475b329 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml index 120344df..232ac2d8 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml index 302907ba..46e9b189 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml index 0dc63e4e..fc88d8fa 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-server/pom.xml b/spring-cloud-gray-server/pom.xml index 00808586..c5de79f1 100644 --- a/spring-cloud-gray-server/pom.xml +++ b/spring-cloud-gray-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-starter-dependencies/pom.xml b/spring-cloud-gray-starter-dependencies/pom.xml index 37088201..380af2e3 100644 --- a/spring-cloud-gray-starter-dependencies/pom.xml +++ b/spring-cloud-gray-starter-dependencies/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-utils/pom.xml b/spring-cloud-gray-utils/pom.xml index 0e81065b..bd62de3c 100644 --- a/spring-cloud-gray-utils/pom.xml +++ b/spring-cloud-gray-utils/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-gray-webui/pom.xml b/spring-cloud-gray-webui/pom.xml index a0fa3783..4730b373 100644 --- a/spring-cloud-gray-webui/pom.xml +++ b/spring-cloud-gray-webui/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-starter-gray-client/pom.xml b/spring-cloud-starter-gray-client/pom.xml index 2aabd7e5..cfb7c8e8 100644 --- a/spring-cloud-starter-gray-client/pom.xml +++ b/spring-cloud-starter-gray-client/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-starter-gray-eureka-server/pom.xml b/spring-cloud-starter-gray-eureka-server/pom.xml index 89e0294e..f1cc6a1f 100644 --- a/spring-cloud-starter-gray-eureka-server/pom.xml +++ b/spring-cloud-starter-gray-eureka-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 diff --git a/spring-cloud-starter-gray-server/pom.xml b/spring-cloud-starter-gray-server/pom.xml index cb555238..2872cedd 100644 --- a/spring-cloud-starter-gray-server/pom.xml +++ b/spring-cloud-starter-gray-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.1 + A.1.0.2 4.0.0 From d605381cf0833faa5ae925163c4e8c4ee89358e2 Mon Sep 17 00:00:00 2001 From: saleson Date: Wed, 29 May 2019 14:09:09 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9build=20plugins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 57 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index 09377df5..ab4e3a74 100644 --- a/pom.xml +++ b/pom.xml @@ -225,6 +225,35 @@ spring-boot:run + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + package + + jar-no-fork + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + package + + jar + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -252,34 +281,6 @@ sonatype-oss-release - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - package - - jar-no-fork - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - - package - - jar - - - - org.apache.maven.plugins From 0facdba44d0d8d27319722b45288d933d1e9fa9c Mon Sep 17 00:00:00 2001 From: saleson Date: Thu, 30 May 2019 11:42:00 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E5=8E=BB=E6=8E=89@Test=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/springcloud/gray/service/test/EurekaDiscoveryTest.java | 3 +-- .../gray/service/test/GrayInstanceRecordEvictionTest.java | 3 +-- .../springcloud/gray/service/test/GrayInstanceServiceTest.java | 2 +- .../cn/springcloud/gray/service/test/GrayTrackServiceTest.java | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/EurekaDiscoveryTest.java b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/EurekaDiscoveryTest.java index ad0f0095..059878c4 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/EurekaDiscoveryTest.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/EurekaDiscoveryTest.java @@ -4,7 +4,6 @@ import com.netflix.discovery.EurekaClient; import com.netflix.discovery.shared.Application; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -25,7 +24,7 @@ public class EurekaDiscoveryTest { private EurekaClient eurekaClient; - @Test + // @Test public void test() { Application application = eurekaClient.getApplication("service-a"); application.getInstances() diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceRecordEvictionTest.java b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceRecordEvictionTest.java index 95080a0d..0ae46772 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceRecordEvictionTest.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceRecordEvictionTest.java @@ -7,7 +7,6 @@ import cn.springcloud.gray.server.service.GrayInstanceService; import lombok.extern.slf4j.Slf4j; import org.junit.Assert; -import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -29,7 +28,7 @@ public class GrayInstanceRecordEvictionTest { @Autowired private GrayInstanceService grayInstanceService; - @Test + // @Test public void testEvictGrayInstance() { GrayServerProperties.InstanceRecordEvictProperties evictProperties = grayServerProperties.getInstance().getEviction(); diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceServiceTest.java b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceServiceTest.java index 90ebc021..bdc4f71f 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceServiceTest.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayInstanceServiceTest.java @@ -35,7 +35,7 @@ public class GrayInstanceServiceTest { private GrayServerProperties grayServerProperties; - @Test + // @Test public void test() throws JsonProcessingException { List grayInstances = grayInstanceService.findAllByStatus( GrayStatus.OPEN, grayServerProperties.getInstance().getNormalInstanceStatus()); diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayTrackServiceTest.java b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayTrackServiceTest.java index 094f40dd..6155a6e3 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayTrackServiceTest.java +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/src/test/java/cn/springcloud/gray/service/test/GrayTrackServiceTest.java @@ -4,7 +4,6 @@ import cn.springcloud.gray.server.module.domain.GrayTrack; import cn.springcloud.gray.server.service.GrayTrackService; import lombok.extern.slf4j.Slf4j; -import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -20,7 +19,7 @@ public class GrayTrackServiceTest { @Autowired private GrayTrackService grayTrackService; - @Test + // @Test public void test1() { GrayTrack grayTrack = GrayTrack.builder() .id(1L) From a2a091fbb0d3aacf098f8419e3fefcbb5991ed4c Mon Sep 17 00:00:00 2001 From: saleson Date: Fri, 31 May 2019 19:00:26 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E8=BD=BDRibbo?= =?UTF-8?q?nConnectionPoint=E6=97=B6=EF=BC=8C=E5=8D=B3=E4=BD=BF=E6=BB=A1?= =?UTF-8?q?=E8=B6=B3=E6=9D=A1=E4=BB=B6=EF=BC=8C=E4=B9=9F=E4=B8=8D=E5=8A=A0?= =?UTF-8?q?=E8=BD=BDHystirx=E7=9B=B8=E5=85=B3=E7=9A=84RibbonConectionPoint?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../netflix/configuration/HystrixGrayAutoConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java index cd3ce435..fc4a80aa 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java @@ -32,7 +32,7 @@ public RequestLocalStorage requestLocalStorage() { * @return DefaultHystrixRibbonConnectionPoint */ @Bean - public RibbonConnectionPoint hystrixRibbonConnectionPoint( + public RibbonConnectionPoint ribbonConnectionPoint( GrayManager grayManager, RequestLocalStorage requestLocalStorage) { return new DefaultHystrixRibbonConnectionPoint(grayManager, requestLocalStorage); } From 465516b086b6f25256f821a87bdbf18db4e00b3f Mon Sep 17 00:00:00 2001 From: saleson Date: Fri, 31 May 2019 22:00:40 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9gray=20manager=20?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/HystrixGrayAutoConfiguration.java | 2 ++ .../configuration/GrayFeignAutoConfiguration.java | 7 ------- .../configuration/GrayZuulAutoConfiguration.java | 8 -------- .../java/cn/springcloud/gray/DefaultGrayManager.java | 12 ++++++++++++ .../cn/springcloud/gray/GrayClientInitializer.java | 1 + .../main/java/cn/springcloud/gray/GrayManager.java | 2 ++ .../java/cn/springcloud/gray/SimpleGrayManager.java | 7 +++++++ spring-cloud-gray-server/pom.xml | 10 ++++++++++ .../src/main/resources/META-INF/spring.factories | 1 + 9 files changed, 35 insertions(+), 15 deletions(-) diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java index fc4a80aa..13edf63d 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/configuration/HystrixGrayAutoConfiguration.java @@ -9,6 +9,7 @@ import feign.hystrix.HystrixFeign; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -16,6 +17,7 @@ @Configuration @ConditionalOnBean(GrayManager.class) @ConditionalOnClass({HystrixCommand.class, HystrixFeign.class}) +@ConditionalOnProperty(value = "gray.hystrix.enabled") @Import(HystrixGrayTrackWebConfiguration.class) public class HystrixGrayAutoConfiguration { diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignAutoConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignAutoConfiguration.java index 31ad5bf3..0fcd2818 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignAutoConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/feign/configuration/GrayFeignAutoConfiguration.java @@ -1,7 +1,6 @@ package cn.springcloud.gray.client.netflix.feign.configuration; import cn.springcloud.gray.GrayManager; -import cn.springcloud.gray.client.netflix.configuration.HystrixGrayAutoConfiguration; import cn.springcloud.gray.client.netflix.feign.GrayTrackFeignRequestInterceptor; import cn.springcloud.gray.request.RequestLocalStorage; import com.netflix.loadbalancer.ILoadBalancer; @@ -41,10 +40,4 @@ public GrayTrackFeignRequestInterceptor grayTrackFeignRequestInterceptor(Request } - @Configuration - @ConditionalOnProperty(value = "feign.hystrix.enabled") - public static class HystrixConfiguration extends HystrixGrayAutoConfiguration { - - } - } diff --git a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/configuration/GrayZuulAutoConfiguration.java b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/configuration/GrayZuulAutoConfiguration.java index c0afad93..de1b88a3 100644 --- a/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/configuration/GrayZuulAutoConfiguration.java +++ b/spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/zuul/configuration/GrayZuulAutoConfiguration.java @@ -2,7 +2,6 @@ import cn.springcloud.gray.GrayManager; import cn.springcloud.gray.client.config.properties.GrayRequestProperties; -import cn.springcloud.gray.client.netflix.configuration.HystrixGrayAutoConfiguration; import cn.springcloud.gray.client.netflix.connectionpoint.RibbonConnectionPoint; import cn.springcloud.gray.client.netflix.zuul.GrayPostZuulFilter; import cn.springcloud.gray.client.netflix.zuul.GrayPreZuulFilter; @@ -48,11 +47,4 @@ public ZuulRequestInterceptor zuulRequestInterceptor() { } - - @Configuration - @ConditionalOnProperty(value = "zuul.ribbonIsolationStrategy", havingValue = "THREAD") - public static class HystrixConfiguration extends HystrixGrayAutoConfiguration { - - } - } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java index 07528c2d..634c5cae 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/DefaultGrayManager.java @@ -27,9 +27,21 @@ public DefaultGrayManager( InformationClient informationClient) { super(grayClientConfig, grayDecisionFactoryKeeper, informationClient); this.grayLoadProperties = grayLoadProperties; +// openForWork(); + } + + @Override + public void setup() { + super.setup(); openForWork(); } + @Override + public void shutdown() { + super.shutdown(); + updateTimer.cancel(); + } + public void openForWork() { log.info("拉取灰度列表"); if (getGrayInformationClient() != null) { diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java index 20ebcb33..9a284581 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayClientInitializer.java @@ -54,5 +54,6 @@ private void initGrayManagerRequestInterceptors() { if (grayManager instanceof AbstractGrayManager) { ((AbstractGrayManager) grayManager).setRequestInterceptors(requestInterceptors.values()); } + grayManager.setup(); } } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java index 90d4ac15..0bc1a0c5 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/GrayManager.java @@ -42,5 +42,7 @@ public interface GrayManager { List getRequeestInterceptors(String interceptroType); + void setup(); + void shutdown(); } diff --git a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java index b8c79447..ddd2b55a 100644 --- a/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java +++ b/spring-cloud-gray-client/src/main/java/cn/springcloud/gray/SimpleGrayManager.java @@ -100,9 +100,16 @@ public void closeGray(String serviceId, String instanceId) { } } + @Override + public void setup() { + + } + @Override public void shutdown() { } + + } diff --git a/spring-cloud-gray-server/pom.xml b/spring-cloud-gray-server/pom.xml index c5de79f1..8bd1da3d 100644 --- a/spring-cloud-gray-server/pom.xml +++ b/spring-cloud-gray-server/pom.xml @@ -56,18 +56,22 @@ io.springfox springfox-swagger2 + true io.springfox springfox-swagger-ui + true io.springfox springfox-spring-web + true io.springfox springfox-bean-validators + true @@ -82,6 +86,7 @@ geronimo-jta_1.1_spec + true javax.transaction @@ -90,23 +95,28 @@ org.springframework.data spring-data-jpa + true mysql mysql-connector-java + true org.mapstruct mapstruct-jdk8 + true org.springframework.cloud spring-cloud-stream + true javax.interceptor javax.interceptor-api + true diff --git a/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories index ebfb0d01..1dde7363 100644 --- a/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-starter-gray-client/src/main/resources/META-INF/spring.factories @@ -5,6 +5,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ cn.springcloud.gray.client.config.GrayClientAutoConfiguration,\ cn.springcloud.gray.client.config.GrayClientWebConfiguration,\ cn.springcloud.gray.client.netflix.configuration.GrayClientEurekaAutoConfiguration,\ + cn.springcloud.gray.client.netflix.configuration.HystrixGrayAutoConfiguration,\ cn.springcloud.gray.client.netflix.configuration.NetflixRibbonGrayAutoConfiguration,\ cn.springcloud.gray.client.netflix.resttemplate.configuration.GrayRestTemplateAutoConfiguration,\ cn.springcloud.gray.client.netflix.zuul.configuration.GrayZuulAutoConfiguration,\ From 22a93ea7f1d5fbc31771d7a0c13725ef8d1caa4e Mon Sep 17 00:00:00 2001 From: saleson Date: Sun, 2 Jun 2019 12:00:08 +0800 Subject: [PATCH 12/12] new version --- pom.xml | 2 +- spring-cloud-gray-client-netflix/pom.xml | 2 +- spring-cloud-gray-client/pom.xml | 2 +- spring-cloud-gray-core/pom.xml | 2 +- spring-cloud-gray-dependencies/pom.xml | 4 ++-- spring-cloud-gray-samples/pom.xml | 2 +- .../spring-cloud-gray-eureka-sample/pom.xml | 4 ++-- .../spring-cloud-gray-server-sample/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../src/main/resources/config/application.yml | 2 +- .../pom.xml | 2 +- .../src/main/resources/config/application.yml | 2 ++ .../spring-cloud-gray-stream-sample/pom.xml | 2 +- .../spring-cloud-gray-zuul-sample/pom.xml | 2 +- .../src/main/resources/config/application.yml | 2 ++ spring-cloud-gray-server/pom.xml | 22 +++++++++---------- .../pom.xml | 2 +- spring-cloud-gray-utils/pom.xml | 2 +- spring-cloud-gray-webui/pom.xml | 2 +- spring-cloud-starter-gray-client/pom.xml | 2 +- .../pom.xml | 2 +- spring-cloud-starter-gray-server/pom.xml | 2 +- 23 files changed, 37 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index ab4e3a74..6cc5c656 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ cn.springcloud.gray spring-cloud-gray pom - A.1.0.2 + A.1.0.3 https://github.com/SpringCloud/spring-cloud-gray Spring Cloud中国社区 diff --git a/spring-cloud-gray-client-netflix/pom.xml b/spring-cloud-gray-client-netflix/pom.xml index b65dcc7d..f532cfa3 100644 --- a/spring-cloud-gray-client-netflix/pom.xml +++ b/spring-cloud-gray-client-netflix/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-client/pom.xml b/spring-cloud-gray-client/pom.xml index 0ab30710..f9974e4c 100644 --- a/spring-cloud-gray-client/pom.xml +++ b/spring-cloud-gray-client/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-core/pom.xml b/spring-cloud-gray-core/pom.xml index 18c59f1d..a37eab71 100644 --- a/spring-cloud-gray-core/pom.xml +++ b/spring-cloud-gray-core/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-dependencies/pom.xml b/spring-cloud-gray-dependencies/pom.xml index f430e55e..b6045c60 100644 --- a/spring-cloud-gray-dependencies/pom.xml +++ b/spring-cloud-gray-dependencies/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 @@ -17,7 +17,7 @@ cn.springcloud.gray spring-cloud-gray-dependencies - A.1.0.2 + A.1.0.3 pom diff --git a/spring-cloud-gray-samples/pom.xml b/spring-cloud-gray-samples/pom.xml index 7605ea13..35277864 100644 --- a/spring-cloud-gray-samples/pom.xml +++ b/spring-cloud-gray-samples/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml index f7d784f7..7fa23582 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-eureka-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 @@ -20,7 +20,7 @@ spring-cloud-gray-utils cn.springcloud.gray - A.1.0.2 + A.1.0.3 org.springframework.boot diff --git a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml index 1a005cb8..5290a6dc 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-server-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml index 405c09e2..44b77f47 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml index c475b329..b75f6466 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/resources/config/application.yml b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/resources/config/application.yml index b924b76f..dfe6c31d 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/resources/config/application.yml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-a1-sample/src/main/resources/config/application.yml @@ -13,7 +13,7 @@ eureka: instanceId: ${spring.application.name}:${server.port} lease-renewal-interval-in-seconds: 10 lease-expiration-duration-in-seconds: 30 - initial-status: starting + initial-status: up # initial-status: out_of_service gray: client: diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml index 232ac2d8..800f4c0f 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml index edc5ca71..61976a30 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml +++ b/spring-cloud-gray-samples/spring-cloud-gray-service-b-sample/src/main/resources/config/application.yml @@ -45,6 +45,8 @@ feign: gray: enabled: true + hystrix: + enabled: true server: url: http://localhost:20202 request: diff --git a/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml index 46e9b189..4d366604 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-stream-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml index fc88d8fa..eb26739f 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml +++ b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray-samples cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml index 0d28bf8d..e7183b5d 100644 --- a/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml +++ b/spring-cloud-gray-samples/spring-cloud-gray-zuul-sample/src/main/resources/config/application.yml @@ -50,6 +50,8 @@ zuul: # serviceId: eureka-client #指定路由到的serviceId gray: # enabled: true + hystrix: + enabled: true server: url: http://localhost:20202 client: diff --git a/spring-cloud-gray-server/pom.xml b/spring-cloud-gray-server/pom.xml index 8bd1da3d..816c805b 100644 --- a/spring-cloud-gray-server/pom.xml +++ b/spring-cloud-gray-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 @@ -56,22 +56,22 @@ io.springfox springfox-swagger2 - true + io.springfox springfox-swagger-ui - true + io.springfox springfox-spring-web - true + io.springfox springfox-bean-validators - true + @@ -86,7 +86,7 @@ geronimo-jta_1.1_spec - true + javax.transaction @@ -95,28 +95,28 @@ org.springframework.data spring-data-jpa - true + mysql mysql-connector-java - true + org.mapstruct mapstruct-jdk8 - true + org.springframework.cloud spring-cloud-stream - true + javax.interceptor javax.interceptor-api - true + diff --git a/spring-cloud-gray-starter-dependencies/pom.xml b/spring-cloud-gray-starter-dependencies/pom.xml index 380af2e3..a4987124 100644 --- a/spring-cloud-gray-starter-dependencies/pom.xml +++ b/spring-cloud-gray-starter-dependencies/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-utils/pom.xml b/spring-cloud-gray-utils/pom.xml index bd62de3c..a5b7e14f 100644 --- a/spring-cloud-gray-utils/pom.xml +++ b/spring-cloud-gray-utils/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-gray-webui/pom.xml b/spring-cloud-gray-webui/pom.xml index 4730b373..53ae4068 100644 --- a/spring-cloud-gray-webui/pom.xml +++ b/spring-cloud-gray-webui/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-starter-gray-client/pom.xml b/spring-cloud-starter-gray-client/pom.xml index cfb7c8e8..fef274bb 100644 --- a/spring-cloud-starter-gray-client/pom.xml +++ b/spring-cloud-starter-gray-client/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-starter-gray-eureka-server/pom.xml b/spring-cloud-starter-gray-eureka-server/pom.xml index f1cc6a1f..e7d05aaf 100644 --- a/spring-cloud-starter-gray-eureka-server/pom.xml +++ b/spring-cloud-starter-gray-eureka-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0 diff --git a/spring-cloud-starter-gray-server/pom.xml b/spring-cloud-starter-gray-server/pom.xml index 2872cedd..b243ac70 100644 --- a/spring-cloud-starter-gray-server/pom.xml +++ b/spring-cloud-starter-gray-server/pom.xml @@ -5,7 +5,7 @@ spring-cloud-gray cn.springcloud.gray - A.1.0.2 + A.1.0.3 4.0.0