From ee2f75cea85827514e879a6f5c488ad8d8d1b768 Mon Sep 17 00:00:00 2001 From: flystar32 Date: Fri, 27 Jul 2018 20:35:50 +0800 Subject: [PATCH] add branch 1.x, support spring boot 1.x --- README.md | 2 +- pom.xml | 15 +++--- spring-cloud-alibaba-dependencies/pom.xml | 4 +- spring-cloud-alibaba-examples/pom.xml | 2 +- .../sentinel-example/pom.xml | 2 +- .../src/main/resources/application.properties | 2 +- .../pom.xml | 9 +--- .../SentinelWebAutoConfiguration.java | 4 +- .../sentinel/endpoint/SentinelEndpoint.java | 12 +++-- .../SentinelEndpointAutoConfiguration.java | 6 +-- .../SentinelAutoConfigurationTests.java | 49 +++++++++++-------- spring-cloud-starter-sentinel/pom.xml | 2 +- 12 files changed, 56 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index e845f9e12..01100c725 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ As the interfaces and annotations of Spring Boot 1 and Spring Boot 2 have been c * 0.2.x for Spring Boot 2 During the incubation period,the version management of the project will follow these rules: -* Functional updates will be reflected in the 3rd number of the version, for example, the next version of 0.1.0 will be 0.1.1。 +* Functional updates will be reflected in the 3rd number of the version, for example, the next version of 0.1.0 will be 0.1.1 . * Emergency fixes for bugs that block the main business process will be reflected in version numbers such as 0.1.1.fix. However, it is our duty to improve the test regression process to avoid such scenarios. diff --git a/pom.xml b/pom.xml index f64f4e6cd..41490ef68 100644 --- a/pom.xml +++ b/pom.xml @@ -8,13 +8,13 @@ org.springframework.cloud spring-cloud-build - 2.0.0.RELEASE + 1.3.8.RELEASE org.springframework.cloud spring-cloud-alibaba - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT pom Spring Cloud Alibaba @@ -55,8 +55,8 @@ - 2.0.0.RELEASE - 2.0.0.RELEASE + 1.3.3.RELEASE + 1.4.4.RELEASE 4.12 3.0 @@ -64,7 +64,7 @@ - 3.7.0 + 3.5 2.8.2 2.21.0 1.6 @@ -107,9 +107,8 @@ ${maven-compiler-plugin.version} true - 1.8 - 1.8 - true + 1.7 + 1.7 diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml index 7639ee0bf..dbde166cc 100644 --- a/spring-cloud-alibaba-dependencies/pom.xml +++ b/spring-cloud-alibaba-dependencies/pom.xml @@ -6,11 +6,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 2.0.0.RELEASE + 1.3.3.BUILD-SNAPSHOT spring-cloud-alibaba-dependencies - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT pom Spring Cloud Alibaba Dependencies Spring Cloud Alibaba Dependencies diff --git a/spring-cloud-alibaba-examples/pom.xml b/spring-cloud-alibaba-examples/pom.xml index 1fa113cc0..ce3d001d5 100644 --- a/spring-cloud-alibaba-examples/pom.xml +++ b/spring-cloud-alibaba-examples/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-alibaba - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT 4.0.0 diff --git a/spring-cloud-alibaba-examples/sentinel-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/pom.xml index 6da7873c5..f346de9de 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-alibaba-examples - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT 4.0.0 diff --git a/spring-cloud-alibaba-examples/sentinel-example/src/main/resources/application.properties b/spring-cloud-alibaba-examples/sentinel-example/src/main/resources/application.properties index 61ddbca7f..252f0fdda 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/src/main/resources/application.properties +++ b/spring-cloud-alibaba-examples/sentinel-example/src/main/resources/application.properties @@ -1,5 +1,5 @@ spring.application.name=sentinel-example server.port=18083 -management.endpoints.web.exposure.include=* +management.security.enabled=false spring.cloud.sentinel.port=8721 spring.cloud.sentinel.dashboard=localhost:8080 \ No newline at end of file diff --git a/spring-cloud-alibaba-sentinel-autoconfigure/pom.xml b/spring-cloud-alibaba-sentinel-autoconfigure/pom.xml index 25c0ef217..33924b8ad 100644 --- a/spring-cloud-alibaba-sentinel-autoconfigure/pom.xml +++ b/spring-cloud-alibaba-sentinel-autoconfigure/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-alibaba - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT 4.0.0 @@ -39,13 +39,6 @@ true - - org.springframework.boot - spring-boot-actuator-autoconfigure - provided - true - - org.springframework.boot spring-boot-configuration-processor diff --git a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/SentinelWebAutoConfiguration.java b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/SentinelWebAutoConfiguration.java index 73795218a..81528668d 100644 --- a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/SentinelWebAutoConfiguration.java +++ b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/SentinelWebAutoConfiguration.java @@ -71,8 +71,8 @@ public class SentinelWebAutoConfiguration { @Bean @ConditionalOnWebApplication - public FilterRegistrationBean servletRequestListener() { - FilterRegistrationBean registration = new FilterRegistrationBean<>(); + public FilterRegistrationBean servletRequestListener() { + FilterRegistrationBean registration = new FilterRegistrationBean(); SentinelProperties.Filter filterConfig = properties.getFilter(); diff --git a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpoint.java b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpoint.java index 9a806ed05..2a71f0b5c 100644 --- a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpoint.java +++ b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpoint.java @@ -27,21 +27,23 @@ import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager; import com.alibaba.csp.sentinel.slots.system.SystemRule; import com.alibaba.csp.sentinel.slots.system.SystemRuleManager; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; -import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; +import org.springframework.boot.actuate.endpoint.AbstractEndpoint; import org.springframework.cloud.alibaba.sentinel.SentinelProperties; /** * Endpoint for Sentinel, contains ans properties and rules * @author xiaojing */ -@Endpoint(id = "sentinel") -public class SentinelEndpoint { +public class SentinelEndpoint extends AbstractEndpoint> { @Autowired private SentinelProperties sentinelProperties; - @ReadOperation + public SentinelEndpoint() { + super("sentinel"); + } + + @Override public Map invoke() { Map result = new HashMap<>(); diff --git a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpointAutoConfiguration.java b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpointAutoConfiguration.java index 098822a2d..728347b46 100644 --- a/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpointAutoConfiguration.java +++ b/spring-cloud-alibaba-sentinel-autoconfigure/src/main/java/org/springframework/cloud/alibaba/sentinel/endpoint/SentinelEndpointAutoConfiguration.java @@ -16,8 +16,8 @@ package org.springframework.cloud.alibaba.sentinel.endpoint; -import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; -import org.springframework.boot.actuate.endpoint.annotation.Endpoint; +import org.springframework.boot.actuate.condition.ConditionalOnEnabledEndpoint; +import org.springframework.boot.actuate.endpoint.Endpoint; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -33,7 +33,7 @@ public class SentinelEndpointAutoConfiguration { @Bean @ConditionalOnMissingBean - @ConditionalOnEnabledEndpoint + @ConditionalOnEnabledEndpoint("sentinel") public SentinelEndpoint sentinelEndPoint() { return new SentinelEndpoint(); } diff --git a/spring-cloud-alibaba-sentinel-autoconfigure/src/test/java/org/springframework/cloud/alibaba/sentinel/SentinelAutoConfigurationTests.java b/spring-cloud-alibaba-sentinel-autoconfigure/src/test/java/org/springframework/cloud/alibaba/sentinel/SentinelAutoConfigurationTests.java index 10608c535..46284a699 100644 --- a/spring-cloud-alibaba-sentinel-autoconfigure/src/test/java/org/springframework/cloud/alibaba/sentinel/SentinelAutoConfigurationTests.java +++ b/spring-cloud-alibaba-sentinel-autoconfigure/src/test/java/org/springframework/cloud/alibaba/sentinel/SentinelAutoConfigurationTests.java @@ -16,12 +16,14 @@ package org.springframework.cloud.alibaba.sentinel; +import org.junit.After; +import org.junit.Before; import org.junit.Test; -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.test.context.runner.WebApplicationContextRunner; +import org.springframework.boot.test.util.EnvironmentTestUtils; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.cloud.alibaba.sentinel.custom.SentinelAspect; import org.springframework.cloud.alibaba.sentinel.custom.SentinelCustomAspectAutoConfiguration; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import static org.assertj.core.api.Assertions.assertThat; @@ -31,35 +33,42 @@ import static org.assertj.core.api.Assertions.assertThat; */ public class SentinelAutoConfigurationTests { - private WebApplicationContextRunner contextRunner = new WebApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(SentinelCustomAspectAutoConfiguration.class, SentinelWebAutoConfiguration.class)) - .withPropertyValues("spring.cloud.sentinel.port=8888") - .withPropertyValues("spring.cloud.sentinel.filter.order=123") - .withPropertyValues("spring.cloud.sentinel.filter.urlPatterns=/*,/test"); + private final AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + + @Before + public void init() { + context.register(SentinelCustomAspectAutoConfiguration.class, SentinelWebAutoConfiguration.class); + EnvironmentTestUtils.addEnvironment(this.context, + "spring.cloud.sentinel.port=8888", + "spring.cloud.sentinel.filter.order=123", + "spring.cloud.sentinel.filter.urlPatterns=/*,/test"); + this.context.refresh(); + } + + @After + public void closeContext() { + this.context.close(); + } @Test public void testSentinelAspect() { - this.contextRunner.run(context -> assertThat(context).hasSingleBean(SentinelAspect.class)); + assertThat(context.getBean(SentinelAspect.class)).isNotNull(); } @Test public void testFilter() { - this.contextRunner.run(context -> { - assertThat(context.getBean( - "servletRequestListener").getClass() == FilterRegistrationBean.class).isTrue(); - }); + assertThat(context.getBean( + "servletRequestListener").getClass() == FilterRegistrationBean.class).isTrue(); } @Test public void testProperties() { - this.contextRunner.run(context -> { - SentinelProperties sentinelProperties = context.getBean(SentinelProperties.class); - assertThat(sentinelProperties.getPort()).isEqualTo("8888"); - assertThat(sentinelProperties.getFilter().getUrlPatterns().size()).isEqualTo(2); - assertThat(sentinelProperties.getFilter().getUrlPatterns().get(0)).isEqualTo("/*"); - assertThat(sentinelProperties.getFilter().getUrlPatterns().get(1)).isEqualTo("/test"); - }); + SentinelProperties sentinelProperties = context.getBean(SentinelProperties.class); + assertThat(sentinelProperties).isNotNull(); + assertThat(sentinelProperties.getPort()).isEqualTo("8888"); + assertThat(sentinelProperties.getFilter().getUrlPatterns().size()).isEqualTo(2); + assertThat(sentinelProperties.getFilter().getUrlPatterns().get(0)).isEqualTo("/*"); + assertThat(sentinelProperties.getFilter().getUrlPatterns().get(1)).isEqualTo("/test"); } diff --git a/spring-cloud-starter-sentinel/pom.xml b/spring-cloud-starter-sentinel/pom.xml index 5d9217e03..c5707b295 100644 --- a/spring-cloud-starter-sentinel/pom.xml +++ b/spring-cloud-starter-sentinel/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-alibaba - 0.2.0.BUILD-SNAPSHOT + 0.1.0.BUILD-SNAPSHOT spring-cloud-starter-sentinel Spring Cloud Starter Sentinel