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;