From 12efadd61f2a688924b8555441617ec08f17fb22 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Thu, 1 Aug 2019 13:55:55 +0800 Subject: [PATCH] Format Code --- ...ubboMetadataEndpointAutoConfiguration.java | 4 +- .../endpoint/DubboRestMetadataEndpoint.java | 4 +- .../dubbo/annotation/DubboTransported.java | 1 + ...BalancedRestTemplateAutoConfiguration.java | 14 +-- .../DubboMetadataAutoConfiguration.java | 10 +- .../DubboOpenFeignAutoConfiguration.java | 4 +- .../DubboServiceAutoConfiguration.java | 26 ++-- ...oServiceRegistrationAutoConfiguration.java | 34 +++--- ...gCloudRegistryConfigPropertyCondition.java | 5 +- .../loadbalancer/DubboClientHttpResponse.java | 1 + .../DubboClientHttpResponseFactory.java | 1 + ...ebApplicationEnvironmentPostProcessor.java | 8 +- .../dubbo/http/ByteArrayHttpInputMessage.java | 1 + .../cloud/dubbo/http/DefaultHttpRequest.java | 8 +- .../matcher/AbstractHttpRequestMatcher.java | 84 ++++++------- .../matcher/HttpRequestConsumersMatcher.java | 36 +++--- .../matcher/HttpRequestParamsMatcher.java | 16 +-- .../http/matcher/HttpRequestPathMatcher.java | 22 ++-- .../matcher/HttpRequestProducesMatcher.java | 36 +++--- .../cloud/dubbo/metadata/RequestMetadata.java | 114 +++++++++--------- .../DubboServiceMetadataRepository.java | 57 ++++----- .../DubboServiceBeanMetadataResolver.java | 9 +- ...ubboTransportedMethodMetadataResolver.java | 2 +- .../metadata/resolver/MetadataResolver.java | 1 + .../dubbo/openfeign/FeignMethodMetadata.java | 1 + .../openfeign/TargeterBeanPostProcessor.java | 6 +- .../openfeign/TargeterInvocationHandler.java | 8 +- ...viceRegistrationEventPublishingAspect.java | 4 +- .../registry/SpringCloudRegistryFactory.java | 8 +- .../event/ServiceInstancesChangedEvent.java | 2 + ...GenericServiceExecutionContextFactory.java | 2 +- .../dubbo/service/DubboMetadataService.java | 4 +- .../service/DubboMetadataServiceProxy.java | 6 +- .../IntrospectiveDubboMetadataService.java | 6 +- ...tDubboGenericServiceParameterResolver.java | 78 ++++++------ .../DubboGenericServiceParameterResolver.java | 4 +- .../RequestBodyServiceParameterResolver.java | 6 +- 37 files changed, 317 insertions(+), 316 deletions(-) diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/DubboMetadataEndpointAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/DubboMetadataEndpointAutoConfiguration.java index 0cb46e70..2d7a0800 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/DubboMetadataEndpointAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/DubboMetadataEndpointAutoConfiguration.java @@ -16,17 +16,19 @@ */ package com.alibaba.cloud.dubbo.actuate; +import com.alibaba.cloud.dubbo.actuate.endpoint.DubboRestMetadataEndpoint; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; import org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import com.alibaba.cloud.dubbo.actuate.endpoint.DubboRestMetadataEndpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; /** * Dubbo Metadata Endpoints Auto-{@link Configuration} + * + * @author Mercy */ @ConditionalOnClass(name = "org.springframework.boot.actuate.endpoint.annotation.Endpoint") @PropertySource(value = "classpath:/META-INF/dubbo/default/actuator-endpoints.properties") diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/endpoint/DubboRestMetadataEndpoint.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/endpoint/DubboRestMetadataEndpoint.java index 38794246..41697d7e 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/endpoint/DubboRestMetadataEndpoint.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/actuate/endpoint/DubboRestMetadataEndpoint.java @@ -16,15 +16,17 @@ */ package com.alibaba.cloud.dubbo.actuate.endpoint; +import com.alibaba.cloud.dubbo.service.DubboMetadataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; -import com.alibaba.cloud.dubbo.service.DubboMetadataService; import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE; /** * Dubbo Rest Metadata {@link Endpoint} + * + * @author Mercy */ @Endpoint(id = "dubborestmetadata") public class DubboRestMetadataEndpoint { diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java index bf81bf1f..10724aa7 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java @@ -49,6 +49,7 @@ import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_RETRIES; * *

* + * @author Mercy * @see FeignClient * @see LoadBalanced */ diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboLoadBalancedRestTemplateAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboLoadBalancedRestTemplateAutoConfiguration.java index 5447c2b2..00c464df 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboLoadBalancedRestTemplateAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboLoadBalancedRestTemplateAutoConfiguration.java @@ -16,6 +16,13 @@ */ package com.alibaba.cloud.dubbo.autoconfigure; +import com.alibaba.cloud.dubbo.annotation.DubboTransported; +import com.alibaba.cloud.dubbo.client.loadbalancer.DubboMetadataInitializerInterceptor; +import com.alibaba.cloud.dubbo.client.loadbalancer.DubboTransporterInterceptor; +import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; +import com.alibaba.cloud.dubbo.metadata.resolver.DubboTransportedAttributesResolver; +import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; +import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; @@ -25,13 +32,6 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.context.event.ApplicationStartedEvent; -import com.alibaba.cloud.dubbo.annotation.DubboTransported; -import com.alibaba.cloud.dubbo.client.loadbalancer.DubboMetadataInitializerInterceptor; -import com.alibaba.cloud.dubbo.client.loadbalancer.DubboTransporterInterceptor; -import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; -import com.alibaba.cloud.dubbo.metadata.resolver.DubboTransportedAttributesResolver; -import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; -import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.client.loadbalancer.LoadBalancerInterceptor; import org.springframework.cloud.client.loadbalancer.RestTemplateCustomizer; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboMetadataAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboMetadataAutoConfiguration.java index 57a58176..cfab21fc 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboMetadataAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboMetadataAutoConfiguration.java @@ -20,11 +20,6 @@ import org.apache.dubbo.config.ProtocolConfig; import org.apache.dubbo.config.spring.ServiceBean; import org.apache.dubbo.config.spring.context.event.ServiceBeanExportedEvent; -import feign.Contract; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.event.ApplicationFailedEvent; import com.alibaba.cloud.dubbo.metadata.DubboProtocolConfigSupplier; import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; import com.alibaba.cloud.dubbo.metadata.resolver.DubboServiceBeanMetadataResolver; @@ -34,6 +29,11 @@ import com.alibaba.cloud.dubbo.service.DubboMetadataServiceExporter; import com.alibaba.cloud.dubbo.service.DubboMetadataServiceProxy; import com.alibaba.cloud.dubbo.service.IntrospectiveDubboMetadataService; import com.alibaba.cloud.dubbo.util.JSONUtils; +import feign.Contract; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.event.ApplicationFailedEvent; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboOpenFeignAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboOpenFeignAutoConfiguration.java index 9f956e05..230b54b0 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboOpenFeignAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboOpenFeignAutoConfiguration.java @@ -16,14 +16,12 @@ */ package com.alibaba.cloud.dubbo.autoconfigure; +import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; import com.alibaba.cloud.dubbo.openfeign.TargeterBeanPostProcessor; import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; - import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; - import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceAutoConfiguration.java index 00af57ae..70ba733b 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceAutoConfiguration.java @@ -16,18 +16,16 @@ */ package com.alibaba.cloud.dubbo.autoconfigure; +import com.alibaba.cloud.dubbo.env.DubboCloudProperties; import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; import com.alibaba.cloud.dubbo.service.parameter.PathVariableServiceParameterResolver; import com.alibaba.cloud.dubbo.service.parameter.RequestBodyServiceParameterResolver; import com.alibaba.cloud.dubbo.service.parameter.RequestHeaderServiceParameterResolver; import com.alibaba.cloud.dubbo.service.parameter.RequestParamServiceParameterResolver; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import com.alibaba.cloud.dubbo.env.DubboCloudProperties; - import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -50,17 +48,6 @@ public class DubboServiceAutoConfiguration { return new DubboGenericServiceFactory(); } - @Configuration - @Import(value = { - DubboGenericServiceExecutionContextFactory.class, - RequestParamServiceParameterResolver.class, - RequestBodyServiceParameterResolver.class, - RequestHeaderServiceParameterResolver.class, - PathVariableServiceParameterResolver.class - }) - static class ParameterResolversConfiguration { - } - /** * Build a primary {@link PropertyResolver} bean to {@link Autowired @Autowired} * @@ -72,4 +59,15 @@ public class DubboServiceAutoConfiguration { public PropertyResolver primaryPropertyResolver(Environment environment) { return environment; } + + @Configuration + @Import(value = { + DubboGenericServiceExecutionContextFactory.class, + RequestParamServiceParameterResolver.class, + RequestBodyServiceParameterResolver.class, + RequestHeaderServiceParameterResolver.class, + PathVariableServiceParameterResolver.class + }) + static class ParameterResolversConfiguration { + } } \ No newline at end of file diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceRegistrationAutoConfiguration.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceRegistrationAutoConfiguration.java index b4331ce8..b9cce47a 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceRegistrationAutoConfiguration.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/DubboServiceRegistrationAutoConfiguration.java @@ -107,6 +107,23 @@ public class DubboServiceRegistrationAutoConfiguration { attachDubboMetadataServiceMetadata(registration); } + private void attachDubboMetadataServiceMetadata(Registration registration) { + if (registration == null) { + return; + } + synchronized (registration) { + Map metadata = registration.getMetadata(); + attachDubboMetadataServiceMetadata(metadata); + } + } + + private void attachDubboMetadataServiceMetadata(Map metadata) { + Map serviceMetadata = dubboServiceMetadataRepository.getDubboMetadataServiceMetadata(); + if (!isEmpty(serviceMetadata)) { + metadata.putAll(serviceMetadata); + } + } + @Configuration @ConditionalOnBean(name = EUREKA_CLIENT_AUTO_CONFIGURATION_CLASS_NAME) @Aspect @@ -169,21 +186,4 @@ public class DubboServiceRegistrationAutoConfiguration { } } } - - private void attachDubboMetadataServiceMetadata(Registration registration) { - if (registration == null) { - return; - } - synchronized (registration) { - Map metadata = registration.getMetadata(); - attachDubboMetadataServiceMetadata(metadata); - } - } - - private void attachDubboMetadataServiceMetadata(Map metadata) { - Map serviceMetadata = dubboServiceMetadataRepository.getDubboMetadataServiceMetadata(); - if (!isEmpty(serviceMetadata)) { - metadata.putAll(serviceMetadata); - } - } } \ No newline at end of file diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java index 66429440..1fe77da0 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java @@ -16,9 +16,9 @@ */ package com.alibaba.cloud.dubbo.autoconfigure.condition; +import com.alibaba.cloud.dubbo.registry.SpringCloudRegistry; import org.springframework.boot.autoconfigure.condition.ConditionOutcome; import org.springframework.boot.autoconfigure.condition.SpringBootCondition; -import com.alibaba.cloud.dubbo.registry.SpringCloudRegistry; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.env.ConfigurableEnvironment; @@ -27,12 +27,13 @@ import org.springframework.util.StringUtils; import java.util.Map; -import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getSubProperties; import static com.alibaba.cloud.dubbo.registry.SpringCloudRegistryFactory.PROTOCOL; +import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getSubProperties; /** * Missing {@link SpringCloudRegistry} Property {@link Condition} * + * @author Mercy * @see SpringCloudRegistry * @see Condition */ diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponse.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponse.java index c1458ed6..ef02aa98 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponse.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponse.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.dubbo.client.loadbalancer; import org.apache.dubbo.rpc.service.GenericException; + import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.client.ClientHttpResponse; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponseFactory.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponseFactory.java index c503ac91..cb51ccd3 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponseFactory.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/client/loadbalancer/DubboClientHttpResponseFactory.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.dubbo.client.loadbalancer; import org.apache.dubbo.rpc.service.GenericException; + import com.alibaba.cloud.dubbo.http.converter.HttpMessageConverterHolder; import com.alibaba.cloud.dubbo.http.util.HttpMessageConverterResolver; import com.alibaba.cloud.dubbo.metadata.RequestMetadata; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java index 3db1b273..d03f6ccf 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java @@ -70,6 +70,10 @@ public class DubboNonWebApplicationEnvironmentPostProcessor implements Environme private final Logger logger = LoggerFactory.getLogger(DubboNonWebApplicationEnvironmentPostProcessor.class); + private static boolean isRestProtocol(String protocol) { + return REST_PROTOCOL.equalsIgnoreCase(protocol); + } + @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { WebApplicationType webApplicationType = application.getWebApplicationType(); @@ -200,8 +204,4 @@ public class DubboNonWebApplicationEnvironmentPostProcessor implements Environme public int getOrder() { // Keep LOWEST_PRECEDENCE return LOWEST_PRECEDENCE; } - - private static boolean isRestProtocol(String protocol) { - return REST_PROTOCOL.equalsIgnoreCase(protocol); - } } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/ByteArrayHttpInputMessage.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/ByteArrayHttpInputMessage.java index 83d0b1e6..4b2b12b2 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/ByteArrayHttpInputMessage.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/ByteArrayHttpInputMessage.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.dubbo.http; import org.apache.dubbo.common.io.UnsafeByteArrayInputStream; + import org.springframework.http.HttpHeaders; import org.springframework.http.HttpInputMessage; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/DefaultHttpRequest.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/DefaultHttpRequest.java index 228b8340..4c1e26fe 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/DefaultHttpRequest.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/DefaultHttpRequest.java @@ -49,6 +49,10 @@ public class DefaultHttpRequest implements HttpRequest { this.headers.putAll(headers); } + public static Builder builder() { + return new Builder(); + } + private URI buildURI(String path, Map> params) { UriComponentsBuilder builder = fromPath(path) .queryParams(new LinkedMultiValueMap<>(params)); @@ -75,10 +79,6 @@ public class DefaultHttpRequest implements HttpRequest { return headers; } - public static Builder builder() { - return new Builder(); - } - /** * {@link HttpRequest} Builder */ diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/AbstractHttpRequestMatcher.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/AbstractHttpRequestMatcher.java index 4bc1c281..c823de4f 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/AbstractHttpRequestMatcher.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/AbstractHttpRequestMatcher.java @@ -27,50 +27,50 @@ import java.util.Iterator; */ public abstract class AbstractHttpRequestMatcher implements HttpRequestMatcher { - /** - * Return the discrete items a request condition is composed of. - *

- * For example URL patterns, HTTP request methods, param expressions, etc. - * - * @return a collection of objects, never {@code null} - */ - protected abstract Collection getContent(); + /** + * Return the discrete items a request condition is composed of. + *

+ * For example URL patterns, HTTP request methods, param expressions, etc. + * + * @return a collection of objects, never {@code null} + */ + protected abstract Collection getContent(); - /** - * The notation to use when printing discrete items of content. - *

- * For example {@code " || "} for URL patterns or {@code " && "} for param - * expressions. - */ - protected abstract String getToStringInfix(); + /** + * The notation to use when printing discrete items of content. + *

+ * For example {@code " || "} for URL patterns or {@code " && "} for param + * expressions. + */ + protected abstract String getToStringInfix(); - @Override - public boolean equals(Object other) { - if (this == other) { - return true; - } - if (other == null || getClass() != other.getClass()) { - return false; - } - return getContent().equals(((AbstractHttpRequestMatcher) other).getContent()); - } + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (other == null || getClass() != other.getClass()) { + return false; + } + return getContent().equals(((AbstractHttpRequestMatcher) other).getContent()); + } - @Override - public int hashCode() { - return getContent().hashCode(); - } + @Override + public int hashCode() { + return getContent().hashCode(); + } - @Override - public String toString() { - StringBuilder builder = new StringBuilder("["); - for (Iterator iterator = getContent().iterator(); iterator.hasNext();) { - Object expression = iterator.next(); - builder.append(expression.toString()); - if (iterator.hasNext()) { - builder.append(getToStringInfix()); - } - } - builder.append("]"); - return builder.toString(); - } + @Override + public String toString() { + StringBuilder builder = new StringBuilder("["); + for (Iterator iterator = getContent().iterator(); iterator.hasNext(); ) { + Object expression = iterator.next(); + builder.append(expression.toString()); + if (iterator.hasNext()) { + builder.append(getToStringInfix()); + } + } + builder.append("]"); + return builder.toString(); + } } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestConsumersMatcher.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestConsumersMatcher.java index 7117c891..35f58a9b 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestConsumersMatcher.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestConsumersMatcher.java @@ -69,6 +69,24 @@ public class HttpRequestConsumersMatcher extends AbstractHttpRequestMatcher { Collections.sort(this.expressions); } + private static Set parseExpressions(String[] consumes, String[] headers) { + Set result = new LinkedHashSet<>(); + if (headers != null) { + for (String header : headers) { + HeaderExpression expr = new HeaderExpression(header); + if ("Content-Type".equalsIgnoreCase(expr.name) && expr.value != null) { + for (MediaType mediaType : MediaType.parseMediaTypes(expr.value)) { + result.add(new ConsumeMediaTypeExpression(mediaType, expr.negated)); + } + } + } + } + for (String consume : consumes) { + result.add(new ConsumeMediaTypeExpression(consume)); + } + return result; + } + @Override public boolean match(HttpRequest request) { @@ -93,24 +111,6 @@ public class HttpRequestConsumersMatcher extends AbstractHttpRequestMatcher { return true; } - private static Set parseExpressions(String[] consumes, String[] headers) { - Set result = new LinkedHashSet<>(); - if (headers != null) { - for (String header : headers) { - HeaderExpression expr = new HeaderExpression(header); - if ("Content-Type".equalsIgnoreCase(expr.name) && expr.value != null) { - for (MediaType mediaType : MediaType.parseMediaTypes(expr.value)) { - result.add(new ConsumeMediaTypeExpression(mediaType, expr.negated)); - } - } - } - } - for (String consume : consumes) { - result.add(new ConsumeMediaTypeExpression(consume)); - } - return result; - } - @Override protected Collection getContent() { return this.expressions; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestParamsMatcher.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestParamsMatcher.java index 83fb599f..23443143 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestParamsMatcher.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestParamsMatcher.java @@ -43,6 +43,14 @@ public class HttpRequestParamsMatcher extends AbstractHttpRequestMatcher { this.expressions = parseExpressions(params); } + private static Set parseExpressions(String... params) { + Set expressions = new LinkedHashSet<>(); + for (String param : params) { + expressions.add(new ParamExpression(param)); + } + return expressions; + } + @Override public boolean match(HttpRequest request) { if (CollectionUtils.isEmpty(expressions)) { @@ -56,14 +64,6 @@ public class HttpRequestParamsMatcher extends AbstractHttpRequestMatcher { return false; } - private static Set parseExpressions(String... params) { - Set expressions = new LinkedHashSet<>(); - for (String param : params) { - expressions.add(new ParamExpression(param)); - } - return expressions; - } - @Override protected Collection getContent() { return this.expressions; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestPathMatcher.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestPathMatcher.java index 07108e9f..64443511 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestPathMatcher.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestPathMatcher.java @@ -45,6 +45,17 @@ public class HttpRequestPathMatcher extends AbstractHttpRequestMatcher { this.pathMatcher = new AntPathMatcher(); } + private static Set prependLeadingSlash(String[] patterns) { + Set result = new LinkedHashSet<>(patterns.length); + for (String pattern : patterns) { + if (StringUtils.hasLength(pattern) && !pattern.startsWith("/")) { + pattern = "/" + pattern; + } + result.add(pattern); + } + return result; + } + @Override public boolean match(HttpRequest request) { List matches = getMatchingPatterns(request); @@ -94,17 +105,6 @@ public class HttpRequestPathMatcher extends AbstractHttpRequestMatcher { return uri.getPath(); } - private static Set prependLeadingSlash(String[] patterns) { - Set result = new LinkedHashSet<>(patterns.length); - for (String pattern : patterns) { - if (StringUtils.hasLength(pattern) && !pattern.startsWith("/")) { - pattern = "/" + pattern; - } - result.add(pattern); - } - return result; - } - @Override protected Collection getContent() { return this.patterns; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestProducesMatcher.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestProducesMatcher.java index efc7300d..f9929777 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestProducesMatcher.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/http/matcher/HttpRequestProducesMatcher.java @@ -69,6 +69,24 @@ public class HttpRequestProducesMatcher extends AbstractHttpRequestMatcher { Collections.sort(this.expressions); } + private static Set parseExpressions(String[] produces, String[] headers) { + Set result = new LinkedHashSet<>(); + if (headers != null) { + for (String header : headers) { + HeaderExpression expr = new HeaderExpression(header); + if (HttpHeaders.ACCEPT.equalsIgnoreCase(expr.name) && expr.value != null) { + for (MediaType mediaType : MediaType.parseMediaTypes(expr.value)) { + result.add(new ProduceMediaTypeExpression(mediaType, expr.negated)); + } + } + } + } + for (String produce : produces) { + result.add(new ProduceMediaTypeExpression(produce)); + } + return result; + } + @Override public boolean match(HttpRequest request) { @@ -89,24 +107,6 @@ public class HttpRequestProducesMatcher extends AbstractHttpRequestMatcher { return true; } - private static Set parseExpressions(String[] produces, String[] headers) { - Set result = new LinkedHashSet<>(); - if (headers != null) { - for (String header : headers) { - HeaderExpression expr = new HeaderExpression(header); - if (HttpHeaders.ACCEPT.equalsIgnoreCase(expr.name) && expr.value != null) { - for (MediaType mediaType : MediaType.parseMediaTypes(expr.value)) { - result.add(new ProduceMediaTypeExpression(mediaType, expr.negated)); - } - } - } - } - for (String produce : produces) { - result.add(new ProduceMediaTypeExpression(produce)); - } - return result; - } - @Override protected Collection getContent() { return expressions; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/RequestMetadata.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/RequestMetadata.java index 05b6b60d..a28b8084 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/RequestMetadata.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/RequestMetadata.java @@ -71,6 +71,63 @@ public class RequestMetadata { headers(requestTemplate.headers()); } + /** + * Get the best matched {@link RequestMetadata} via specified {@link RequestMetadata} + * + * @param requestMetadataMap the source of {@link NavigableMap} + * @param requestMetadata the match object + * @return if not matched, return null + */ + public static RequestMetadata getBestMatch(NavigableMap requestMetadataMap, + RequestMetadata requestMetadata) { + + RequestMetadata key = requestMetadata; + + RequestMetadata result = requestMetadataMap.get(key); + + if (result == null) { + SortedMap headMap = requestMetadataMap.headMap(key, true); + result = headMap.isEmpty() ? null : requestMetadataMap.get(headMap.lastKey()); + } + + return result; + } + + private static void add(String key, String value, MultiValueMap destination) { + destination.add(key, value); + } + + private static > void addAll(Map source, + MultiValueMap destination) { + for (Map.Entry entry : source.entrySet()) { + String key = entry.getKey(); + for (String value : entry.getValue()) { + add(key, value, destination); + } + } + } + + private static void mediaTypes(HttpHeaders httpHeaders, String headerName, Collection destination) { + List value = httpHeaders.get(headerName); + List mediaTypes = parseMediaTypes(value); + destination.addAll(toMediaTypeValues(mediaTypes)); + } + + private static List toMediaTypeValues(List mediaTypes) { + List list = new ArrayList<>(mediaTypes.size()); + for (MediaType mediaType : mediaTypes) { + list.add(mediaType.toString()); + } + return list; + } + + private static List toMediaTypes(Collection mediaTypeValues) { + if (mediaTypeValues.isEmpty()) { + return Collections.singletonList(MediaType.ALL); + } + return parseMediaTypes(new LinkedList<>(mediaTypeValues)); + } + public String getMethod() { return method; } @@ -176,63 +233,6 @@ public class RequestMetadata { return this; } - /** - * Get the best matched {@link RequestMetadata} via specified {@link RequestMetadata} - * - * @param requestMetadataMap the source of {@link NavigableMap} - * @param requestMetadata the match object - * @return if not matched, return null - */ - public static RequestMetadata getBestMatch(NavigableMap requestMetadataMap, - RequestMetadata requestMetadata) { - - RequestMetadata key = requestMetadata; - - RequestMetadata result = requestMetadataMap.get(key); - - if (result == null) { - SortedMap headMap = requestMetadataMap.headMap(key, true); - result = headMap.isEmpty() ? null : requestMetadataMap.get(headMap.lastKey()); - } - - return result; - } - - private static void add(String key, String value, MultiValueMap destination) { - destination.add(key, value); - } - - private static > void addAll(Map source, - MultiValueMap destination) { - for (Map.Entry entry : source.entrySet()) { - String key = entry.getKey(); - for (String value : entry.getValue()) { - add(key, value, destination); - } - } - } - - private static void mediaTypes(HttpHeaders httpHeaders, String headerName, Collection destination) { - List value = httpHeaders.get(headerName); - List mediaTypes = parseMediaTypes(value); - destination.addAll(toMediaTypeValues(mediaTypes)); - } - - private static List toMediaTypeValues(List mediaTypes) { - List list = new ArrayList<>(mediaTypes.size()); - for (MediaType mediaType : mediaTypes) { - list.add(mediaType.toString()); - } - return list; - } - - private static List toMediaTypes(Collection mediaTypeValues) { - if (mediaTypeValues.isEmpty()) { - return Collections.singletonList(MediaType.ALL); - } - return parseMediaTypes(new LinkedList<>(mediaTypeValues)); - } - @Override public boolean equals(Object o) { if (this == o) { diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index 4a143615..548280fb 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -102,29 +102,17 @@ public class DubboServiceMetadataRepository implements SmartInitializingSingleto * Monitor object for synchronization */ private final Object monitor = new Object(); - - private ApplicationEventPublisher applicationEventPublisher; - /** * A {@link Set} of service names that had been initialized */ private final Set initializedServices = new LinkedHashSet<>(); - - // =================================== Registration =================================== // - /** * All exported {@link URL urls} {@link Map} whose key is the return value of {@link URL#getServiceKey()} method * and value is the {@link List} of {@link URL URLs} */ private final MultiValueMap allExportedURLs = new LinkedMultiValueMap<>(); - // ==================================================================================== // - - - // =================================== Subscription =================================== // - - private volatile Set subscribedServices = emptySet(); - + // =================================== Registration =================================== // /** * The subscribed {@link URL urls} {@link Map} of {@link DubboMetadataService}, * whose key is the return value of {@link URL#getServiceKey()} method and value is the {@link List} of @@ -135,14 +123,19 @@ public class DubboServiceMetadataRepository implements SmartInitializingSingleto // ==================================================================================== // - // =================================== REST Metadata ================================== // - + // =================================== Subscription =================================== // /** * A Map to store REST metadata temporary, its' key is the special service name for a Dubbo service, * the value is a JSON content of JAX-RS or Spring MVC REST metadata from the annotated methods. */ private final Set serviceRestMetadata = new LinkedHashSet<>(); + private ApplicationEventPublisher applicationEventPublisher; + // ==================================================================================== // + + + // =================================== REST Metadata ================================== // + private volatile Set subscribedServices = emptySet(); /** * Key is application name * Value is Map @@ -178,6 +171,23 @@ public class DubboServiceMetadataRepository implements SmartInitializingSingleto // ==================================================================================== // + private static Map getMap(Map> repository, String key) { + return getOrDefault(repository, key, newHashMap()); + } + + private static V getOrDefault(Map source, K key, V defaultValue) { + V value = source.get(key); + if (value == null) { + value = defaultValue; + source.put(key, value); + } + return value; + } + + private static Map newHashMap() { + return new LinkedHashMap<>(); + } + /** * Initialize {@link #subscribedServices the subscribed services} * @@ -556,23 +566,6 @@ public class DubboServiceMetadataRepository implements SmartInitializingSingleto return metadata; } - private static Map getMap(Map> repository, String key) { - return getOrDefault(repository, key, newHashMap()); - } - - private static V getOrDefault(Map source, K key, V defaultValue) { - V value = source.get(key); - if (value == null) { - value = defaultValue; - source.put(key, value); - } - return value; - } - - private static Map newHashMap() { - return new LinkedHashMap<>(); - } - private void excludeSelf(Set subscribedServices) { subscribedServices.remove(currentApplicationName); } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboServiceBeanMetadataResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboServiceBeanMetadataResolver.java index 9bf740c1..1a1f1eb8 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboServiceBeanMetadataResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboServiceBeanMetadataResolver.java @@ -16,18 +16,19 @@ */ package com.alibaba.cloud.dubbo.metadata.resolver; +import org.apache.dubbo.common.URL; +import org.apache.dubbo.config.spring.ServiceBean; + +import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; +import com.alibaba.cloud.dubbo.metadata.ServiceRestMetadata; import feign.Contract; import feign.Feign; import feign.MethodMetadata; import feign.Util; -import org.apache.dubbo.common.URL; -import org.apache.dubbo.config.spring.ServiceBean; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.SmartInitializingSingleton; -import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; -import com.alibaba.cloud.dubbo.metadata.ServiceRestMetadata; import org.springframework.util.ClassUtils; import java.lang.reflect.Method; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboTransportedMethodMetadataResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboTransportedMethodMetadataResolver.java index 1c09c0bc..c5fda32f 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboTransportedMethodMetadataResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/DubboTransportedMethodMetadataResolver.java @@ -16,11 +16,11 @@ */ package com.alibaba.cloud.dubbo.metadata.resolver; -import feign.Contract; import com.alibaba.cloud.dubbo.annotation.DubboTransported; import com.alibaba.cloud.dubbo.metadata.DubboTransportedMethodMetadata; import com.alibaba.cloud.dubbo.metadata.MethodMetadata; import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; +import feign.Contract; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.env.PropertyResolver; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/MetadataResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/MetadataResolver.java index 52917c5d..fa7cbb0b 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/MetadataResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/resolver/MetadataResolver.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.dubbo.metadata.resolver; import org.apache.dubbo.config.spring.ServiceBean; + import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; import com.alibaba.cloud.dubbo.metadata.ServiceRestMetadata; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/FeignMethodMetadata.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/FeignMethodMetadata.java index 3c11c914..f646c133 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/FeignMethodMetadata.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/FeignMethodMetadata.java @@ -17,6 +17,7 @@ package com.alibaba.cloud.dubbo.openfeign; import org.apache.dubbo.rpc.service.GenericService; + import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; import java.lang.reflect.Method; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterBeanPostProcessor.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterBeanPostProcessor.java index 289ffb33..222c2a79 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterBeanPostProcessor.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterBeanPostProcessor.java @@ -16,18 +16,16 @@ */ package com.alibaba.cloud.dubbo.openfeign; +import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory; import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory; - import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.config.BeanPostProcessor; -import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; - import org.springframework.core.env.Environment; -import static java.lang.reflect.Proxy.newProxyInstance; import static com.alibaba.cloud.dubbo.autoconfigure.DubboOpenFeignAutoConfiguration.TARGETER_CLASS_NAME; +import static java.lang.reflect.Proxy.newProxyInstance; import static org.springframework.util.ClassUtils.getUserClass; import static org.springframework.util.ClassUtils.isPresent; import static org.springframework.util.ClassUtils.resolveClassName; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterInvocationHandler.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterInvocationHandler.java index 5f081d56..7b1bc506 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterInvocationHandler.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/openfeign/TargeterInvocationHandler.java @@ -78,6 +78,10 @@ class TargeterInvocationHandler implements InvocationHandler { this.contextFactory = contextFactory; } + private static T cast(Object object) { + return (T) object; + } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { /** @@ -168,8 +172,4 @@ class TargeterInvocationHandler implements InvocationHandler { return feignMethodMetadataMap; } - - private static T cast(Object object) { - return (T) object; - } } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboServiceRegistrationEventPublishingAspect.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboServiceRegistrationEventPublishingAspect.java index c6c8c210..790b5e2e 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboServiceRegistrationEventPublishingAspect.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/DubboServiceRegistrationEventPublishingAspect.java @@ -16,11 +16,11 @@ */ package com.alibaba.cloud.dubbo.registry; +import com.alibaba.cloud.dubbo.registry.event.ServiceInstancePreRegisteredEvent; +import com.alibaba.cloud.dubbo.registry.event.ServiceInstanceRegisteredEvent; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; -import com.alibaba.cloud.dubbo.registry.event.ServiceInstancePreRegisteredEvent; -import com.alibaba.cloud.dubbo.registry.event.ServiceInstanceRegisteredEvent; import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.cloud.client.serviceregistry.ServiceRegistry; import org.springframework.context.ApplicationEventPublisher; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java index 64991b30..c6fb757d 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/SpringCloudRegistryFactory.java @@ -59,6 +59,10 @@ public class SpringCloudRegistryFactory implements RegistryFactory { public SpringCloudRegistryFactory() { } + public static void setApplicationContext(ConfigurableApplicationContext applicationContext) { + SpringCloudRegistryFactory.applicationContext = applicationContext; + } + protected void init() { if (initialized || applicationContext == null) { return; @@ -75,8 +79,4 @@ public class SpringCloudRegistryFactory implements RegistryFactory { return new SpringCloudRegistry(url, discoveryClient, dubboServiceMetadataRepository, dubboMetadataConfigServiceProxy, jsonUtils, applicationContext); } - - public static void setApplicationContext(ConfigurableApplicationContext applicationContext) { - SpringCloudRegistryFactory.applicationContext = applicationContext; - } } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/event/ServiceInstancesChangedEvent.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/event/ServiceInstancesChangedEvent.java index 0aa110d7..62229626 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/event/ServiceInstancesChangedEvent.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/event/ServiceInstancesChangedEvent.java @@ -27,6 +27,8 @@ import static java.util.Collections.unmodifiableCollection; /** * An event raised after the {@link ServiceInstance instances} of one service has been changed. + * + * @author Mercy */ public class ServiceInstancesChangedEvent extends ApplicationEvent { diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboGenericServiceExecutionContextFactory.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboGenericServiceExecutionContextFactory.java index b40fe92c..32591bf3 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboGenericServiceExecutionContextFactory.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboGenericServiceExecutionContextFactory.java @@ -16,12 +16,12 @@ */ package com.alibaba.cloud.dubbo.service; -import org.springframework.beans.factory.annotation.Autowired; import com.alibaba.cloud.dubbo.http.HttpServerRequest; import com.alibaba.cloud.dubbo.metadata.MethodMetadata; import com.alibaba.cloud.dubbo.metadata.MethodParameterMetadata; import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; import com.alibaba.cloud.dubbo.service.parameter.DubboGenericServiceParameterResolver; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.annotation.AnnotationAwareOrderComparator; import javax.annotation.PostConstruct; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataService.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataService.java index 0c491952..a8ef08b0 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataService.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataService.java @@ -67,8 +67,8 @@ public interface DubboMetadataService { * Get the json content of an exported List of {@link URL URLs} by the serviceInterface , group and version * * @param serviceInterface The class name of service interface - * @param group {@link Service#group() the service group} (optional) - * @param version {@link Service#version() the service version} (optional) + * @param group {@link Service#group() the service group} (optional) + * @param version {@link Service#version() the service version} (optional) * @return non-null read-only {@link List} * @see URL */ diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java index da57fd55..6eb7ef1c 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java @@ -26,14 +26,14 @@ import static java.lang.reflect.Proxy.newProxyInstance; /** * The proxy of {@link DubboMetadataService} + * + * @author Mercy */ public class DubboMetadataServiceProxy implements BeanClassLoaderAware, DisposableBean { private final DubboGenericServiceFactory dubboGenericServiceFactory; - - private ClassLoader classLoader; - private final Map dubboMetadataServiceCache = new ConcurrentHashMap<>(); + private ClassLoader classLoader; public DubboMetadataServiceProxy(DubboGenericServiceFactory dubboGenericServiceFactory) { this.dubboGenericServiceFactory = dubboGenericServiceFactory; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/IntrospectiveDubboMetadataService.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/IntrospectiveDubboMetadataService.java index 3e4e1a66..79ef1bf9 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/IntrospectiveDubboMetadataService.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/IntrospectiveDubboMetadataService.java @@ -18,13 +18,13 @@ package com.alibaba.cloud.dubbo.service; import org.apache.dubbo.common.URL; +import com.alibaba.cloud.dubbo.metadata.ServiceRestMetadata; +import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; +import com.alibaba.cloud.dubbo.util.JSONUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; -import com.alibaba.cloud.dubbo.metadata.ServiceRestMetadata; -import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository; -import com.alibaba.cloud.dubbo.util.JSONUtils; import java.util.Collections; import java.util.HashMap; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/AbstractDubboGenericServiceParameterResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/AbstractDubboGenericServiceParameterResolver.java index 8b6b1d6b..c646e768 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/AbstractDubboGenericServiceParameterResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/AbstractDubboGenericServiceParameterResolver.java @@ -16,67 +16,67 @@ */ package com.alibaba.cloud.dubbo.service.parameter; -import static org.springframework.context.ConfigurableApplicationContext.CONVERSION_SERVICE_BEAN_NAME; -import static org.springframework.util.ClassUtils.resolveClassName; - import org.springframework.beans.factory.BeanClassLoaderAware; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.convert.ConversionService; import org.springframework.format.support.DefaultFormattingConversionService; +import static org.springframework.context.ConfigurableApplicationContext.CONVERSION_SERVICE_BEAN_NAME; +import static org.springframework.util.ClassUtils.resolveClassName; + /** * Abstract {@link DubboGenericServiceParameterResolver} implementation * * @author Mercy */ public abstract class AbstractDubboGenericServiceParameterResolver - implements DubboGenericServiceParameterResolver, BeanClassLoaderAware { + implements DubboGenericServiceParameterResolver, BeanClassLoaderAware { - private int order; + private int order; - @Autowired(required = false) - @Qualifier(CONVERSION_SERVICE_BEAN_NAME) - private ConversionService conversionService = new DefaultFormattingConversionService(); + @Autowired(required = false) + @Qualifier(CONVERSION_SERVICE_BEAN_NAME) + private ConversionService conversionService = new DefaultFormattingConversionService(); - private ClassLoader classLoader; + private ClassLoader classLoader; - public ConversionService getConversionService() { - return conversionService; - } + public ConversionService getConversionService() { + return conversionService; + } - public void setConversionService(ConversionService conversionService) { - this.conversionService = conversionService; - } + public void setConversionService(ConversionService conversionService) { + this.conversionService = conversionService; + } - public ClassLoader getClassLoader() { - return classLoader; - } + public ClassLoader getClassLoader() { + return classLoader; + } - @Override - public void setBeanClassLoader(ClassLoader classLoader) { - this.classLoader = classLoader; - } + @Override + public void setBeanClassLoader(ClassLoader classLoader) { + this.classLoader = classLoader; + } - public void setOrder(int order) { - this.order = order; - } + @Override + public int getOrder() { + return order; + } - @Override - public int getOrder() { - return order; - } + public void setOrder(int order) { + this.order = order; + } - protected Class resolveClass(String className) { - return resolveClassName(className, classLoader); - } + protected Class resolveClass(String className) { + return resolveClassName(className, classLoader); + } - protected Object resolveValue(Object parameterValue, String parameterType) { - Class targetType = resolveClass(parameterType); - return resolveValue(parameterValue, targetType); - } + protected Object resolveValue(Object parameterValue, String parameterType) { + Class targetType = resolveClass(parameterType); + return resolveValue(parameterValue, targetType); + } - protected Object resolveValue(Object parameterValue, Class parameterType) { - return conversionService.convert(parameterValue, parameterType); - } + protected Object resolveValue(Object parameterValue, Class parameterType) { + return conversionService.convert(parameterValue, parameterType); + } } diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/DubboGenericServiceParameterResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/DubboGenericServiceParameterResolver.java index 1700c303..7b676e98 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/DubboGenericServiceParameterResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/DubboGenericServiceParameterResolver.java @@ -16,10 +16,10 @@ */ package com.alibaba.cloud.dubbo.service.parameter; -import com.alibaba.cloud.dubbo.metadata.MethodParameterMetadata; - import org.apache.dubbo.rpc.service.GenericService; + import com.alibaba.cloud.dubbo.http.HttpServerRequest; +import com.alibaba.cloud.dubbo.metadata.MethodParameterMetadata; import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; import org.springframework.core.Ordered; diff --git a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/RequestBodyServiceParameterResolver.java b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/RequestBodyServiceParameterResolver.java index f9c2020c..1af50b71 100644 --- a/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/RequestBodyServiceParameterResolver.java +++ b/spring-cloud-alibaba-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/parameter/RequestBodyServiceParameterResolver.java @@ -16,14 +16,14 @@ */ package com.alibaba.cloud.dubbo.service.parameter; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import com.alibaba.cloud.dubbo.http.HttpServerRequest; import com.alibaba.cloud.dubbo.http.converter.HttpMessageConverterHolder; import com.alibaba.cloud.dubbo.http.util.HttpMessageConverterResolver; import com.alibaba.cloud.dubbo.metadata.MethodParameterMetadata; import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata; +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageNotReadableException;