From 8e7966dfa42b8e2348340a0d9f1a894fd42ee961 Mon Sep 17 00:00:00 2001 From: lepdou Date: Wed, 13 Apr 2022 10:53:32 +0800 Subject: [PATCH] refactor transfer metadata --- CHANGELOG.md | 9 +- .../pom.xml | 6 ++ .../MetadataTransferAutoConfiguration.java | 97 +++++++++++++++---- .../DecodeTransferMetadataReactiveFilter.java | 8 +- .../DecodeTransferMetadataServletFilter.java | 8 +- ...EncodeTransferMedataFeignInterceptor.java} | 8 +- ...ransferMedataRestTemplateInterceptor.java} | 6 +- ...ava => EncodeTransferMedataScgFilter.java} | 5 +- ...odeTransferMetadataReactiveFilterTest.java | 16 +-- ...codeTransferMetadataServletFilterTest.java | 14 +-- ...MetadataTransferAutoConfigurationTest.java | 17 ++-- ...deTransferMedataFeignInterceptorTest.java} | 13 ++- ...ferMedataRestTemplateInterceptorTest.java} | 9 +- .../polaris/PolarisDiscoveryProperties.java | 2 +- .../common/metadata/MetadataContext.java | 26 ++++- .../config/MetadataAutoConfiguration.java | 50 +--------- .../config/MetadataAutoConfigurationTest.java | 32 ++---- .../context/PolarisContextProperties.java | 12 +++ .../spring-configuration-metadata.json | 7 ++ 19 files changed, 201 insertions(+), 144 deletions(-) rename spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilter.java => spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java (92%) rename spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilter.java => spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java (92%) rename spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/{interceptor/Metadata2HeaderFeignInterceptor.java => EncodeTransferMedataFeignInterceptor.java} (92%) rename spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/{interceptor/Metadata2HeaderRestTemplateInterceptor.java => EncodeTransferMedataRestTemplateInterceptor.java} (95%) rename spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/{filter/gateway/Metadata2HeaderScgFilter.java => EncodeTransferMedataScgFilter.java} (95%) rename spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java => spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataReactiveFilterTest.java (83%) rename spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java => spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataServletFilterTest.java (85%) rename spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/{Metadata2HeaderFeignInterceptorTest.java => EncodeTransferMedataFeignInterceptorTest.java} (91%) rename spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/{Metadata2HeaderRestTemplateInterceptorTest.java => EncodeTransferMedataRestTemplateInterceptorTest.java} (92%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94179ed0..b0041dc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Change Log --- -- [Bugfix: fix router bug and add router example](https://github.com/Tencent/spring-cloud-tencent/pull/109) -- [feat:add custom label resolver spi for rate limit](https://github.com/Tencent/spring-cloud-tencent/pull/107) -- [feat:fix discovery weight param not set to register request bug](https://github.com/Tencent/spring-cloud-tencent/pull/104) -- [Bugfix: fix causing cpu 100% when set ScheduledThreadPoolExecutor corePoolSize=0](https://github.com/Tencent/spring-cloud-tencent/pull/101) +- [Bugfix: fix router bug and add router example](https://github.com/Tencent/spring-cloud-tencent/pull/89) +- [feat:add custom label resolver spi for rate limit](https://github.com/Tencent/spring-cloud-tencent/pull/105) +- [feat:fix discovery weight param not set to register request bug](https://github.com/Tencent/spring-cloud-tencent/pull/102) +- [Bugfix: fix causing cpu 100% when set ScheduledThreadPoolExecutor corePoolSize=0](https://github.com/Tencent/spring-cloud-tencent/pull/98) +- [Refactor: refactor transfer metadata](https://github.com/Tencent/spring-cloud-tencent/pull/113) diff --git a/spring-cloud-starter-tencent-metadata-transfer/pom.xml b/spring-cloud-starter-tencent-metadata-transfer/pom.xml index d7b03f60..dedcde31 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/pom.xml +++ b/spring-cloud-starter-tencent-metadata-transfer/pom.xml @@ -33,6 +33,12 @@ true + + org.springframework.boot + spring-boot-starter-web + true + + org.springframework.boot spring-boot-starter-test diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java index 60fe0ac3..3199c6fc 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfiguration.java @@ -13,6 +13,7 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.metadata.config; @@ -20,13 +21,18 @@ package com.tencent.cloud.metadata.config; import java.util.List; import java.util.Map; -import com.tencent.cloud.metadata.core.filter.gateway.Metadata2HeaderScgFilter; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderFeignInterceptor; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderRestTemplateInterceptor; +import com.tencent.cloud.common.constant.MetadataConstant; +import com.tencent.cloud.metadata.core.DecodeTransferMetadataReactiveFilter; +import com.tencent.cloud.metadata.core.DecodeTransferMetadataServletFilter; +import com.tencent.cloud.metadata.core.EncodeTransferMedataFeignInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataRestTemplateInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataScgFilter; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -36,6 +42,11 @@ import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.util.CollectionUtils; import org.springframework.web.client.RestTemplate; +import static javax.servlet.DispatcherType.ASYNC; +import static javax.servlet.DispatcherType.ERROR; +import static javax.servlet.DispatcherType.FORWARD; +import static javax.servlet.DispatcherType.INCLUDE; +import static javax.servlet.DispatcherType.REQUEST; /** * Metadata transfer auto configuration. * @@ -44,6 +55,46 @@ import org.springframework.web.client.RestTemplate; @Configuration public class MetadataTransferAutoConfiguration { + /** + * Create when web application type is SERVLET. + */ + @Configuration + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) + static class MetadataServletFilterConfig { + + @Bean + public FilterRegistrationBean metadataServletFilterRegistrationBean( + DecodeTransferMetadataServletFilter decodeTransferMetadataServletFilter) { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>( + decodeTransferMetadataServletFilter); + filterRegistrationBean.setDispatcherTypes(ASYNC, ERROR, FORWARD, INCLUDE, + REQUEST); + filterRegistrationBean + .setOrder(MetadataConstant.OrderConstant.WEB_FILTER_ORDER); + return filterRegistrationBean; + } + + @Bean + public DecodeTransferMetadataServletFilter metadataServletFilter() { + return new DecodeTransferMetadataServletFilter(); + } + + } + + /** + * Create when web application type is REACTIVE. + */ + @Configuration + @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) + static class MetadataReactiveFilterConfig { + + @Bean + public DecodeTransferMetadataReactiveFilter metadataReactiveFilter() { + return new DecodeTransferMetadataReactiveFilter(); + } + + } + /** * Create when gateway application is SCG. */ @@ -52,8 +103,8 @@ public class MetadataTransferAutoConfiguration { static class MetadataTransferScgFilterConfig { @Bean - public GlobalFilter metadata2HeaderScgFilter() { - return new Metadata2HeaderScgFilter(); + public GlobalFilter encodeTransferMedataScgFilter() { + return new EncodeTransferMedataScgFilter(); } } @@ -66,8 +117,8 @@ public class MetadataTransferAutoConfiguration { static class MetadataTransferFeignInterceptorConfig { @Bean - public Metadata2HeaderFeignInterceptor metadata2HeaderFeignInterceptor() { - return new Metadata2HeaderFeignInterceptor(); + public EncodeTransferMedataFeignInterceptor encodeTransferMedataFeignInterceptor() { + return new EncodeTransferMedataFeignInterceptor(); } } @@ -82,13 +133,13 @@ public class MetadataTransferAutoConfiguration { private ApplicationContext context; @Bean - public Metadata2HeaderRestTemplateInterceptor metadata2HeaderRestTemplateInterceptor() { - return new Metadata2HeaderRestTemplateInterceptor(); + public EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor() { + return new EncodeTransferMedataRestTemplateInterceptor(); } @Bean - BeanPostProcessor metadata2HeaderRestTemplatePostProcessor( - Metadata2HeaderRestTemplateInterceptor metadata2HeaderRestTemplateInterceptor) { + BeanPostProcessor encodeTransferMetadataRestTemplatePostProcessor( + EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor) { // Coping with multiple bean injection scenarios Map beans = this.context.getBeansOfType(RestTemplate.class); // If the restTemplate has been created when the @@ -98,13 +149,15 @@ public class MetadataTransferAutoConfiguration { for (RestTemplate restTemplate : beans.values()) { List interceptors = restTemplate.getInterceptors(); // Avoid setting interceptor repeatedly. - if (null != interceptors && !interceptors.contains(metadata2HeaderRestTemplateInterceptor)) { - interceptors.add(metadata2HeaderRestTemplateInterceptor); + if (null != interceptors && !interceptors + .contains(encodeTransferMedataRestTemplateInterceptor)) { + interceptors.add(encodeTransferMedataRestTemplateInterceptor); restTemplate.setInterceptors(interceptors); } } } - return new Metadata2HeaderRestTemplatePostProcessor(metadata2HeaderRestTemplateInterceptor); + return new EncodeTransferMetadataRestTemplatePostProcessor( + encodeTransferMedataRestTemplateInterceptor); } @Override @@ -112,13 +165,14 @@ public class MetadataTransferAutoConfiguration { this.context = applicationContext; } - public static class Metadata2HeaderRestTemplatePostProcessor implements BeanPostProcessor { + public static class EncodeTransferMetadataRestTemplatePostProcessor + implements BeanPostProcessor { - private Metadata2HeaderRestTemplateInterceptor metadata2HeaderRestTemplateInterceptor; + private EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor; - Metadata2HeaderRestTemplatePostProcessor( - Metadata2HeaderRestTemplateInterceptor metadata2HeaderRestTemplateInterceptor) { - this.metadata2HeaderRestTemplateInterceptor = metadata2HeaderRestTemplateInterceptor; + EncodeTransferMetadataRestTemplatePostProcessor( + EncodeTransferMedataRestTemplateInterceptor encodeTransferMedataRestTemplateInterceptor) { + this.encodeTransferMedataRestTemplateInterceptor = encodeTransferMedataRestTemplateInterceptor; } @Override @@ -132,8 +186,9 @@ public class MetadataTransferAutoConfiguration { RestTemplate restTemplate = (RestTemplate) bean; List interceptors = restTemplate.getInterceptors(); // Avoid setting interceptor repeatedly. - if (null != interceptors && !interceptors.contains(metadata2HeaderRestTemplateInterceptor)) { - interceptors.add(this.metadata2HeaderRestTemplateInterceptor); + if (null != interceptors && !interceptors + .contains(encodeTransferMedataRestTemplateInterceptor)) { + interceptors.add(this.encodeTransferMedataRestTemplateInterceptor); restTemplate.setInterceptors(interceptors); } } diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java similarity index 92% rename from spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilter.java rename to spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java index ba55a4df..885ddbfa 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.common.metadata.filter.web; +package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -42,9 +43,10 @@ import org.springframework.web.server.WebFilterChain; * * @author Haotian Zhang */ -public class MetadataReactiveFilter implements WebFilter, Ordered { +public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered { - private static final Logger LOG = LoggerFactory.getLogger(MetadataReactiveFilter.class); + private static final Logger LOG = LoggerFactory + .getLogger(DecodeTransferMetadataReactiveFilter.class); @Override public int getOrder() { diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java similarity index 92% rename from spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilter.java rename to spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java index cbae8673..70225fd0 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.common.metadata.filter.web; +package com.tencent.cloud.metadata.core; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -44,9 +45,10 @@ import org.springframework.web.filter.OncePerRequestFilter; * @author Haotian Zhang */ @Order(MetadataConstant.OrderConstant.WEB_FILTER_ORDER) -public class MetadataServletFilter extends OncePerRequestFilter { +public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter { - private static final Logger LOG = LoggerFactory.getLogger(MetadataServletFilter.class); + private static final Logger LOG = LoggerFactory + .getLogger(DecodeTransferMetadataServletFilter.class); @Override protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java similarity index 92% rename from spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java rename to spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java index 8726cba2..df40de7a 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderFeignInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.metadata.core.interceptor; +package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -41,9 +42,10 @@ import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUST * * @author Haotian Zhang */ -public class Metadata2HeaderFeignInterceptor implements RequestInterceptor, Ordered { +public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor, Ordered { - private static final Logger LOG = LoggerFactory.getLogger(Metadata2HeaderFeignInterceptor.class); + private static final Logger LOG = LoggerFactory + .getLogger(EncodeTransferMedataFeignInterceptor.class); @Override public int getOrder() { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderRestTemplateInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java similarity index 95% rename from spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderRestTemplateInterceptor.java rename to spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java index 11313f96..7f4b65c8 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/interceptor/Metadata2HeaderRestTemplateInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.metadata.core.interceptor; +package com.tencent.cloud.metadata.core; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -41,7 +42,8 @@ import org.springframework.util.CollectionUtils; * * @author Haotian Zhang */ -public class Metadata2HeaderRestTemplateInterceptor implements ClientHttpRequestInterceptor, Ordered { +public class EncodeTransferMedataRestTemplateInterceptor + implements ClientHttpRequestInterceptor, Ordered { @Override public int getOrder() { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java similarity index 95% rename from spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java rename to spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java index 98a4047b..bc25dc59 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/filter/gateway/Metadata2HeaderScgFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.metadata.core.filter.gateway; +package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -41,7 +42,7 @@ import static org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClien * * @author Haotian Zhang */ -public class Metadata2HeaderScgFilter implements GlobalFilter, Ordered { +public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered { private static final int METADATA_SCG_FILTER_ORDER = LOAD_BALANCER_CLIENT_FILTER_ORDER + 1; diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataReactiveFilterTest.java similarity index 83% rename from spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java rename to spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataReactiveFilterTest.java index 2ed1a81c..6752c25b 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataReactiveFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataReactiveFilterTest.java @@ -13,12 +13,14 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.common.metadata.filter.web; +package com.tencent.cloud.metadata; import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.metadata.core.DecodeTransferMetadataReactiveFilter; import org.assertj.core.api.Assertions; import org.junit.Before; import org.junit.Test; @@ -36,23 +38,23 @@ import org.springframework.web.server.WebFilterChain; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.MOCK; /** - * Test for {@link MetadataReactiveFilter} * * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = MOCK, classes = MetadataServletFilterTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) -public class MetadataReactiveFilterTest { +@SpringBootTest(webEnvironment = MOCK, + classes = DecodeTransferMetadataServletFilterTest.TestApplication.class, + properties = {"spring.config.location = classpath:application-test.yml"}) +public class DecodeTransferMetadataReactiveFilterTest { @Autowired private MetadataLocalProperties metadataLocalProperties; - private MetadataReactiveFilter metadataReactiveFilter; + private DecodeTransferMetadataReactiveFilter metadataReactiveFilter; @Before public void setUp() { - this.metadataReactiveFilter = new MetadataReactiveFilter(); + this.metadataReactiveFilter = new DecodeTransferMetadataReactiveFilter(); } @Test diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataServletFilterTest.java similarity index 85% rename from spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java rename to spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataServletFilterTest.java index 78daedb3..68aed82b 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/filter/web/MetadataServletFilterTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/DecodeTransferMetadataServletFilterTest.java @@ -13,9 +13,10 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ -package com.tencent.cloud.common.metadata.filter.web; +package com.tencent.cloud.metadata; import java.io.IOException; @@ -24,6 +25,7 @@ import javax.servlet.ServletException; import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.metadata.core.DecodeTransferMetadataServletFilter; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; @@ -38,20 +40,20 @@ import org.springframework.test.context.junit4.SpringRunner; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; /** - * Test for {@link MetadataServletFilter} * * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = RANDOM_PORT, classes = MetadataServletFilterTest.TestApplication.class, - properties = { "spring.config.location = classpath:application-test.yml" }) -public class MetadataServletFilterTest { +@SpringBootTest(webEnvironment = RANDOM_PORT, + classes = DecodeTransferMetadataServletFilterTest.TestApplication.class, + properties = {"spring.config.location = classpath:application-test.yml"}) +public class DecodeTransferMetadataServletFilterTest { @Autowired private MetadataLocalProperties metadataLocalProperties; @Autowired - private MetadataServletFilter metadataServletFilter; + private DecodeTransferMetadataServletFilter metadataServletFilter; @Test public void test1() throws ServletException, IOException { diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfigurationTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfigurationTest.java index 8b0d6830..1dc82365 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfigurationTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/config/MetadataTransferAutoConfigurationTest.java @@ -13,12 +13,13 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.metadata.config; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderFeignInterceptor; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderRestTemplateInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataFeignInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataRestTemplateInterceptor; import org.assertj.core.api.Assertions; import org.junit.Test; @@ -44,14 +45,16 @@ public class MetadataTransferAutoConfigurationTest { .run(context -> { Assertions.assertThat(context).hasSingleBean( MetadataTransferAutoConfiguration.MetadataTransferFeignInterceptorConfig.class); - Assertions.assertThat(context).hasSingleBean(Metadata2HeaderFeignInterceptor.class); Assertions.assertThat(context) - .hasSingleBean(MetadataTransferAutoConfiguration.MetadataTransferRestTemplateConfig.class); - Assertions.assertThat(context).hasSingleBean(Metadata2HeaderRestTemplateInterceptor.class); + .hasSingleBean(EncodeTransferMedataFeignInterceptor.class); Assertions.assertThat(context).hasSingleBean( - MetadataTransferAutoConfiguration.MetadataTransferRestTemplateConfig.Metadata2HeaderRestTemplatePostProcessor.class); + MetadataTransferAutoConfiguration.MetadataTransferRestTemplateConfig.class); Assertions.assertThat(context) - .hasSingleBean(MetadataTransferAutoConfiguration.MetadataTransferScgFilterConfig.class); + .hasSingleBean(EncodeTransferMedataRestTemplateInterceptor.class); + Assertions.assertThat(context).hasSingleBean( + MetadataTransferAutoConfiguration.MetadataTransferRestTemplateConfig.EncodeTransferMetadataRestTemplatePostProcessor.class); + Assertions.assertThat(context).hasSingleBean( + MetadataTransferAutoConfiguration.MetadataTransferScgFilterConfig.class); Assertions.assertThat(context).hasSingleBean(GlobalFilter.class); }); } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataFeignInterceptorTest.java similarity index 91% rename from spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java rename to spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataFeignInterceptorTest.java index 33ab0c6c..ec645718 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataFeignInterceptorTest.java @@ -13,6 +13,7 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.metadata.core.intercepter; @@ -25,7 +26,7 @@ import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; import com.tencent.cloud.common.util.JacksonUtils; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderFeignInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataFeignInterceptor; import feign.RequestInterceptor; import feign.RequestTemplate; import org.assertj.core.api.Assertions; @@ -51,14 +52,16 @@ import org.springframework.web.bind.annotation.RestController; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.DEFINED_PORT; /** - * Test for {@link Metadata2HeaderFeignInterceptor} + * Test for {@link EncodeTransferMedataFeignInterceptor} * * @author Haotian Zhang */ @RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = DEFINED_PORT, classes = Metadata2HeaderFeignInterceptorTest.TestApplication.class, - properties = { "server.port=8081", "spring.config.location = classpath:application-test.yml" }) -public class Metadata2HeaderFeignInterceptorTest { +@SpringBootTest(webEnvironment = DEFINED_PORT, + classes = EncodeTransferMedataFeignInterceptorTest.TestApplication.class, + properties = { "server.port=8081", + "spring.config.location = classpath:application-test.yml" }) +public class EncodeTransferMedataFeignInterceptorTest { @Autowired private MetadataLocalProperties metadataLocalProperties; diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataRestTemplateInterceptorTest.java similarity index 92% rename from spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java rename to spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataRestTemplateInterceptorTest.java index e28404fa..6046651a 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/Metadata2HeaderRestTemplateInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/intercepter/EncodeTransferMedataRestTemplateInterceptorTest.java @@ -13,6 +13,7 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.metadata.core.intercepter; @@ -24,7 +25,7 @@ import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; import com.tencent.cloud.common.util.JacksonUtils; -import com.tencent.cloud.metadata.core.interceptor.Metadata2HeaderRestTemplateInterceptor; +import com.tencent.cloud.metadata.core.EncodeTransferMedataRestTemplateInterceptor; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; @@ -46,15 +47,15 @@ import org.springframework.web.client.RestTemplate; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; /** - * Test for {@link Metadata2HeaderRestTemplateInterceptor} + * Test for {@link EncodeTransferMedataRestTemplateInterceptor} * * @author Haotian Zhang */ @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = RANDOM_PORT, - classes = Metadata2HeaderRestTemplateInterceptorTest.TestApplication.class, + classes = EncodeTransferMedataRestTemplateInterceptorTest.TestApplication.class, properties = { "spring.config.location = classpath:application-test.yml" }) -public class Metadata2HeaderRestTemplateInterceptorTest { +public class EncodeTransferMedataRestTemplateInterceptorTest { @Autowired private MetadataLocalProperties metadataLocalProperties; diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java index d2b34a95..a1c51c30 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java @@ -49,7 +49,7 @@ public class PolarisDiscoveryProperties { /** * Service name to registry. */ - @Value("${spring.cloud.polaris.discovery.service:${spring.application.name:}}") + @Value("${spring.cloud.polaris.discovery.service:${spring.cloud.polaris.service:${spring.application.name:}}}") private String service; /** diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java index f63a5f05..2fad0bd1 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java @@ -13,6 +13,7 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.common.metadata; @@ -24,6 +25,8 @@ import java.util.concurrent.ConcurrentHashMap; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.common.util.JacksonUtils; +import org.springframework.util.StringUtils; + /** * Metadata Context. * @@ -34,15 +37,12 @@ public class MetadataContext { /** * Namespace of local instance. */ - public static final String LOCAL_NAMESPACE = ApplicationContextAwareUtils - .getProperties("spring.cloud.polaris.discovery.namespace", "default"); + public static String LOCAL_NAMESPACE; /** * Service name of local instance. */ - public static final String LOCAL_SERVICE = ApplicationContextAwareUtils.getProperties( - "spring.cloud.polaris.discovery.service", - ApplicationContextAwareUtils.getProperties("spring.application.name", null)); + public static String LOCAL_SERVICE; /** * Transitive custom metadata content. @@ -54,6 +54,22 @@ public class MetadataContext { */ private final Map systemMetadata; + static { + String namespace = ApplicationContextAwareUtils.getProperties("spring.cloud.polaris.namespace"); + if (StringUtils.isEmpty(namespace)) { + namespace = ApplicationContextAwareUtils.getProperties("spring.cloud.polaris.discovery.namespace", "default"); + } + LOCAL_NAMESPACE = namespace; + + String serviceName = ApplicationContextAwareUtils.getProperties("spring.cloud.polaris.service"); + if (StringUtils.isEmpty(serviceName)) { + serviceName = ApplicationContextAwareUtils.getProperties( + "spring.cloud.polaris.discovery.service", + ApplicationContextAwareUtils.getProperties("spring.application.name", null)); + } + LOCAL_SERVICE = serviceName; + } + public MetadataContext() { this.transitiveCustomMetadata = new ConcurrentHashMap<>(); this.systemMetadata = new ConcurrentHashMap<>(); diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java index 2554de60..e8f29d72 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfiguration.java @@ -13,29 +13,19 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.common.metadata.config; -import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.filter.gateway.MetadataFirstScgFilter; -import com.tencent.cloud.common.metadata.filter.web.MetadataReactiveFilter; -import com.tencent.cloud.common.metadata.filter.web.MetadataServletFilter; import com.tencent.cloud.common.metadata.interceptor.feign.MetadataFirstFeignInterceptor; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; -import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import static javax.servlet.DispatcherType.ASYNC; -import static javax.servlet.DispatcherType.ERROR; -import static javax.servlet.DispatcherType.FORWARD; -import static javax.servlet.DispatcherType.INCLUDE; -import static javax.servlet.DispatcherType.REQUEST; - /** * Metadata auto configuration. * @@ -53,44 +43,6 @@ public class MetadataAutoConfiguration { return new MetadataLocalProperties(); } - /** - * Create when web application type is SERVLET. - */ - @Configuration - @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) - static class MetadataServletFilterConfig { - - @Bean - public FilterRegistrationBean metadataServletFilterRegistrationBean( - MetadataServletFilter metadataServletFilter) { - FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean<>( - metadataServletFilter); - filterRegistrationBean.setDispatcherTypes(ASYNC, ERROR, FORWARD, INCLUDE, REQUEST); - filterRegistrationBean.setOrder(MetadataConstant.OrderConstant.WEB_FILTER_ORDER); - return filterRegistrationBean; - } - - @Bean - public MetadataServletFilter metadataServletFilter() { - return new MetadataServletFilter(); - } - - } - - /** - * Create when web application type is REACTIVE. - */ - @Configuration - @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) - static class MetadataReactiveFilterConfig { - - @Bean - public MetadataReactiveFilter metadataReactiveFilter() { - return new MetadataReactiveFilter(); - } - - } - /** * Create when Feign exists. */ diff --git a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java index 6a4c75cb..29434666 100644 --- a/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java +++ b/spring-cloud-tencent-commons/src/test/java/com/tencent/cloud/common/metadata/config/MetadataAutoConfigurationTest.java @@ -13,13 +13,12 @@ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. + * */ package com.tencent.cloud.common.metadata.config; import com.tencent.cloud.common.metadata.filter.gateway.MetadataFirstScgFilter; -import com.tencent.cloud.common.metadata.filter.web.MetadataReactiveFilter; -import com.tencent.cloud.common.metadata.filter.web.MetadataServletFilter; import com.tencent.cloud.common.metadata.interceptor.feign.MetadataFirstFeignInterceptor; import org.assertj.core.api.Assertions; import org.junit.Test; @@ -49,13 +48,10 @@ public class MetadataAutoConfigurationTest { public void test1() { this.applicationContextRunner.withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class)) .run(context -> { - Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class); - Assertions.assertThat(context) - .doesNotHaveBean(MetadataAutoConfiguration.MetadataServletFilterConfig.class); - Assertions.assertThat(context).doesNotHaveBean(MetadataServletFilter.class); Assertions.assertThat(context) - .doesNotHaveBean(MetadataAutoConfiguration.MetadataReactiveFilterConfig.class); - Assertions.assertThat(context).doesNotHaveBean(MetadataReactiveFilter.class); + .hasSingleBean(MetadataLocalProperties.class); + Assertions.assertThat(context).hasSingleBean( + MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); Assertions.assertThat(context) .hasSingleBean(MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); Assertions.assertThat(context).hasSingleBean(MetadataFirstFeignInterceptor.class); @@ -72,13 +68,10 @@ public class MetadataAutoConfigurationTest { public void test2() { this.webApplicationContextRunner.withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class)) .run(context -> { - Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class); - Assertions.assertThat(context) - .hasSingleBean(MetadataAutoConfiguration.MetadataServletFilterConfig.class); - Assertions.assertThat(context).hasSingleBean(MetadataServletFilter.class); Assertions.assertThat(context) - .doesNotHaveBean(MetadataAutoConfiguration.MetadataReactiveFilterConfig.class); - Assertions.assertThat(context).doesNotHaveBean(MetadataReactiveFilter.class); + .hasSingleBean(MetadataLocalProperties.class); + Assertions.assertThat(context).hasSingleBean( + MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); Assertions.assertThat(context) .hasSingleBean(MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); Assertions.assertThat(context).hasSingleBean(MetadataFirstFeignInterceptor.class); @@ -97,14 +90,9 @@ public class MetadataAutoConfigurationTest { .withConfiguration(AutoConfigurations.of(MetadataAutoConfiguration.class)).run(context -> { Assertions.assertThat(context).hasSingleBean(MetadataLocalProperties.class); Assertions.assertThat(context) - .doesNotHaveBean(MetadataAutoConfiguration.MetadataServletFilterConfig.class); - Assertions.assertThat(context).doesNotHaveBean(MetadataServletFilter.class); - Assertions.assertThat(context) - .hasSingleBean(MetadataAutoConfiguration.MetadataReactiveFilterConfig.class); - Assertions.assertThat(context).hasSingleBean(MetadataReactiveFilter.class); - Assertions.assertThat(context) - .hasSingleBean(MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); - Assertions.assertThat(context).hasSingleBean(MetadataFirstFeignInterceptor.class); + .hasSingleBean(MetadataLocalProperties.class); + Assertions.assertThat(context).hasSingleBean( + MetadataAutoConfiguration.MetadataFeignInterceptorConfig.class); Assertions.assertThat(context) .hasSingleBean(MetadataAutoConfiguration.MetadataScgFilterConfig.class); Assertions.assertThat(context).hasSingleBean(MetadataFirstScgFilter.class); diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java index a4494ca4..cae0705b 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java @@ -57,6 +57,11 @@ public class PolarisContextProperties { */ private String namespace = "default"; + /** + * polaris service name. + */ + private String service; + @Autowired private Environment environment; @@ -111,4 +116,11 @@ public class PolarisContextProperties { this.namespace = namespace; } + String getService() { + return service; + } + + void setService(String service) { + this.service = service; + } } diff --git a/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring-configuration-metadata.json b/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring-configuration-metadata.json index 75fbdd4f..e6e2ae7f 100644 --- a/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring-configuration-metadata.json +++ b/spring-cloud-tencent-polaris-context/src/main/resources/META-INF/spring-configuration-metadata.json @@ -20,6 +20,13 @@ "default": "default", "sourceType": "com.tencent.cloud.polaris.context.PolarisContextProperties" }, + { + "name": "spring.cloud.polaris.service", + "type": "java.lang.String", + "description": "polaris service name", + "default": "${spring.application.name}", + "sourceType": "com.tencent.cloud.polaris.context.PolarisContextProperties" + }, { "name": "spring.cloud.polaris.local-ip-address", "type": "java.lang.String",