diff --git a/spring-cloud-alibaba-starters/pom.xml b/spring-cloud-alibaba-starters/pom.xml
index c3f083989..1249b019e 100644
--- a/spring-cloud-alibaba-starters/pom.xml
+++ b/spring-cloud-alibaba-starters/pom.xml
@@ -22,7 +22,6 @@
spring-cloud-starter-stream-rocketmq
spring-cloud-starter-bus-rocketmq
spring-cloud-starter-dubbo
- spring-cloud-starter-dubbo-gateway
spring-cloud-starter-alibaba-sidecar
spring-cloud-circuitbreaker-sentinel
spring-cloud-starter-alibaba-sentinel
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistration.java
index 27f6fe7f4..75912ca45 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistration.java
@@ -17,6 +17,7 @@
package com.alibaba.cloud.nacos.registry;
import java.net.URI;
+import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
@@ -57,12 +58,16 @@ public class NacosRegistration implements Registration, ServiceInstance {
*/
public static final String MANAGEMENT_ENDPOINT_BASE_PATH = "management.endpoints.web.base-path";
+ private List registrationCustomizers;
+
private NacosDiscoveryProperties nacosDiscoveryProperties;
private ApplicationContext context;
- public NacosRegistration(NacosDiscoveryProperties nacosDiscoveryProperties,
+ public NacosRegistration(List registrationCustomizers,
+ NacosDiscoveryProperties nacosDiscoveryProperties,
ApplicationContext context) {
+ this.registrationCustomizers = registrationCustomizers;
this.nacosDiscoveryProperties = nacosDiscoveryProperties;
this.context = context;
}
@@ -104,6 +109,17 @@ public class NacosRegistration implements Registration, ServiceInstance {
metadata.put(PreservedMetadataKeys.IP_DELETE_TIMEOUT,
nacosDiscoveryProperties.getIpDeleteTimeout().toString());
}
+ customize(registrationCustomizers, this);
+ }
+
+ private static void customize(
+ List registrationCustomizers,
+ NacosRegistration registration) {
+ if (registrationCustomizers != null) {
+ for (NacosRegistrationCustomizer customizer : registrationCustomizers) {
+ customizer.customize(registration);
+ }
+ }
}
@Override
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayConstants.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizer.java
similarity index 61%
rename from spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayConstants.java
rename to spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizer.java
index e60e8663e..e04376022 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayConstants.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizer.java
@@ -14,21 +14,17 @@
* limitations under the License.
*/
-package com.alibaba.cloud.dubbo.gateway;
-
-import com.alibaba.cloud.dubbo.util.DubboCloudConstants;
+package com.alibaba.cloud.nacos.registry;
/**
- * The constants of Dubbo Cloud Gateway.
- *
- * @author Mercy
+ * @author L.cm
*/
-public abstract class DubboCloudGatewayConstants {
+public interface NacosRegistrationCustomizer {
/**
- * The property prefix of Configuration.
+ * customize NacosRegistration.
+ * @param registration NacosRegistration
*/
- public static final String CONFIG_PROPERTY_PREFIX = DubboCloudConstants.CONFIG_PROPERTY_PREFIX
- + ".gateway";
+ void customize(NacosRegistration registration);
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.java
index 2bfdfb250..854b77729 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry/NacosServiceRegistryAutoConfiguration.java
@@ -16,11 +16,14 @@
package com.alibaba.cloud.nacos.registry;
+import java.util.List;
+
import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.NacosServiceManager;
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
+import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -56,9 +59,11 @@ public class NacosServiceRegistryAutoConfiguration {
@Bean
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
public NacosRegistration nacosRegistration(
+ ObjectProvider> registrationCustomizers,
NacosDiscoveryProperties nacosDiscoveryProperties,
ApplicationContext context) {
- return new NacosRegistration(nacosDiscoveryProperties, context);
+ return new NacosRegistration(registrationCustomizers.getIfAvailable(),
+ nacosDiscoveryProperties, context);
}
@Bean
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizerTest.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizerTest.java
new file mode 100644
index 000000000..139e9f812
--- /dev/null
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/test/java/com/alibaba/cloud/nacos/registry/NacosRegistrationCustomizerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright 2013-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.cloud.nacos.registry;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.Properties;
+
+import com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration;
+import com.alibaba.nacos.api.NacosFactory;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.api.support.MethodProxy;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
+
+/**
+ * @author L.cm
+ */
+@RunWith(PowerMockRunner.class)
+@PowerMockIgnore("javax.management.*")
+@PowerMockRunnerDelegate(SpringRunner.class)
+@PrepareForTest({ NacosFactory.class })
+@SpringBootTest(classes = NacosRegistrationCustomizerTest.TestConfig.class,
+ properties = { "spring.application.name=myTestService1",
+ "spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848" },
+ webEnvironment = RANDOM_PORT)
+public class NacosRegistrationCustomizerTest {
+
+ @Autowired
+ private NacosAutoServiceRegistration nacosAutoServiceRegistration;
+
+ static {
+ try {
+ Method method = PowerMockito.method(NacosFactory.class, "createNamingService",
+ Properties.class);
+ MethodProxy.proxy(method, new InvocationHandler() {
+ @Override
+ public Object invoke(Object proxy, Method method, Object[] args)
+ throws Throwable {
+ return new MockNamingService();
+ }
+ });
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void contextLoads() throws Exception {
+ NacosRegistration registration = nacosAutoServiceRegistration.getRegistration();
+ Map metadata = registration.getMetadata();
+ Assert.assertEquals("test1", metadata.get("test1"));
+ }
+
+ @Configuration
+ @EnableAutoConfiguration
+ @ImportAutoConfiguration({ AutoServiceRegistrationConfiguration.class,
+ NacosDiscoveryClientConfiguration.class,
+ NacosServiceRegistryAutoConfiguration.class })
+ public static class TestConfig {
+
+ @Bean
+ public NacosRegistrationCustomizer nacosRegistrationCustomizer() {
+ return registration -> {
+ Map metadata = registration.getMetadata();
+ metadata.put("test1", "test1");
+ };
+ }
+
+ }
+
+}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java
index 39b43408c..996a483b7 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java
@@ -105,7 +105,7 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator {
// If failed to send heartbeat message, means that the Dashboard is DOWN
dashboardUp = false;
detailMap.put("dashboard",
- new Status(Status.DOWN.getCode(), String.format(
+ new Status(Status.UNKNOWN.getCode(), String.format(
"the dashboard servers [%s] one of them can't be connected",
consoleServerList)));
}
@@ -138,7 +138,7 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator {
// DOWN
dataSourceUp = false;
dataSourceDetailMap.put(dataSourceBeanName,
- new Status(Status.DOWN.getCode(), e.getMessage()));
+ new Status(Status.UNKNOWN.getCode(), e.getMessage()));
}
}
@@ -147,7 +147,7 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator {
builder.up().withDetails(detailMap);
}
else {
- builder.down().withDetails(detailMap);
+ builder.unknown().withDetails(detailMap);
}
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/test/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicatorTests.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/test/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicatorTests.java
index b8d68d522..71ddb799b 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/test/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicatorTests.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/test/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicatorTests.java
@@ -109,9 +109,9 @@ public class SentinelHealthIndicatorTests {
Health health = sentinelHealthIndicator.health();
- assertThat(health.getStatus()).isEqualTo(Status.DOWN);
- assertThat(health.getDetails().get("dashboard")).isEqualTo(
- new Status(Status.DOWN.getCode(), "localhost:8080 can't be connected"));
+ assertThat(health.getStatus()).isEqualTo(Status.UNKNOWN);
+ assertThat(health.getDetails().get("dashboard")).isEqualTo(new Status(
+ Status.UNKNOWN.getCode(), "localhost:8080 can't be connected"));
}
@Test
@@ -163,13 +163,13 @@ public class SentinelHealthIndicatorTests {
Health health = sentinelHealthIndicator.health();
- assertThat(health.getStatus()).isEqualTo(Status.DOWN);
+ assertThat(health.getStatus()).isEqualTo(Status.UNKNOWN);
Map dataSourceDetailMap = (Map) health
.getDetails().get("dataSource");
assertThat(dataSourceDetailMap.get("ds1-sentinel-file-datasource"))
.isEqualTo(Status.UP);
assertThat(dataSourceDetailMap.get("ds2-sentinel-file-datasource"))
- .isEqualTo(new Status(Status.DOWN.getCode(), "fileDataSource2 error"));
+ .isEqualTo(new Status(Status.UNKNOWN.getCode(), "fileDataSource2 error"));
}
}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/pom.xml
deleted file mode 100644
index 2b94e06cf..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/pom.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
- com.alibaba.cloud
- spring-cloud-alibaba-starters
- ${revision}
- ../pom.xml
-
-
- 4.0.0
-
- spring-cloud-starter-dubbo-gateway
- Spring Cloud Starter Dubbo Gateway
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter
- true
-
-
-
- org.springframework.boot
- spring-boot-actuator
- true
-
-
-
- org.springframework.boot
- spring-boot-actuator-autoconfigure
- true
-
-
-
- org.springframework.boot
- spring-boot-configuration-processor
- true
-
-
-
- org.springframework.boot
- spring-boot
- true
-
-
-
- org.springframework.boot
- spring-boot-autoconfigure
- true
-
-
-
-
- org.springframework.cloud
- spring-cloud-commons
- true
-
-
-
- org.springframework.cloud
- spring-cloud-context
- true
-
-
-
-
-
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-gateway
- true
-
-
-
-
- com.alibaba.cloud
- spring-cloud-starter-dubbo
-
-
-
- org.apache.commons
- commons-lang3
- 3.11
-
-
-
-
- org.springframework
- spring-test
- test
-
-
-
- org.springframework.boot
- spring-boot-test
- test
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-netflix-eureka-client
- test
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-zookeeper-discovery
- ${spring-cloud-zookeeper.version}
- test
-
-
- org.apache.zookeeper
- zookeeper
-
-
-
-
-
- org.apache.zookeeper
- zookeeper
- 3.4.14
- test
-
-
- org.slf4j
- slf4j-log4j12
-
-
-
-
-
- org.apache.curator
- curator-framework
- ${curator.version}
- test
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-consul-discovery
- ${spring-cloud-consul.version}
- test
-
-
-
-
- com.alibaba.cloud
- spring-cloud-starter-alibaba-nacos-discovery
- test
-
-
-
-
-
\ No newline at end of file
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayExecutor.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayExecutor.java
deleted file mode 100644
index 016c7e614..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayExecutor.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway;
-
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.alibaba.cloud.dubbo.http.MutableHttpServerRequest;
-import com.alibaba.cloud.dubbo.metadata.DubboRestServiceMetadata;
-import com.alibaba.cloud.dubbo.metadata.RequestMetadata;
-import com.alibaba.cloud.dubbo.metadata.RestMethodMetadata;
-import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository;
-import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContext;
-import com.alibaba.cloud.dubbo.service.DubboGenericServiceExecutionContextFactory;
-import com.alibaba.cloud.dubbo.service.DubboGenericServiceFactory;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.dubbo.rpc.service.GenericException;
-import org.apache.dubbo.rpc.service.GenericService;
-
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.core.convert.ConversionService;
-import org.springframework.format.support.DefaultFormattingConversionService;
-import org.springframework.http.HttpRequest;
-
-import static com.alibaba.cloud.dubbo.http.util.HttpUtils.getParameters;
-import static org.apache.commons.lang3.StringUtils.substringAfter;
-import static org.apache.commons.lang3.StringUtils.substringBetween;
-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;
-
-/**
- * The executor of Dubbo Cloud Gateway that handles the HTTP request and responses the
- * result of execution of the generic invocation to the Dubbo service providers.
- *
- * @author Mercy
- *
- */
-public class DubboCloudGatewayExecutor {
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private final DubboServiceMetadataRepository repository;
-
- private final DubboGenericServiceFactory serviceFactory;
-
- private final DubboGenericServiceExecutionContextFactory contextFactory;
-
- private final DubboCloudGatewayProperties dubboCloudGatewayProperties;
-
- private final ConversionService conversionService;
-
- private final Map dubboTranslatedAttributes = new HashMap<>();
-
- public DubboCloudGatewayExecutor(DubboServiceMetadataRepository repository,
- DubboGenericServiceFactory serviceFactory,
- DubboGenericServiceExecutionContextFactory contextFactory,
- DubboCloudGatewayProperties dubboCloudGatewayProperties,
- ObjectProvider conversionService) {
- this.repository = repository;
- this.serviceFactory = serviceFactory;
- this.contextFactory = contextFactory;
- this.dubboCloudGatewayProperties = dubboCloudGatewayProperties;
- this.conversionService = conversionService
- .getIfAvailable(DefaultFormattingConversionService::new);
- // TODO : Replace these hard-code configurations
- this.dubboTranslatedAttributes.put("protocol", "dubbo");
- this.dubboTranslatedAttributes.put("cluster", "failover");
- }
-
- public Object execute(HttpRequest request) {
-
- String serviceName = resolveServiceName(request);
-
- String restPath = substringAfter(request.getURI().getPath(), serviceName);
-
- // 初始化 serviceName 的 REST 请求元数据
- repository.initializeMetadata(serviceName);
- // 将 HttpServletRequest 转化为 RequestMetadata
- RequestMetadata clientMetadata = buildRequestMetadata(request, restPath);
-
- DubboRestServiceMetadata dubboRestServiceMetadata = repository.get(serviceName,
- clientMetadata);
-
- Object result = null;
-
- if (dubboRestServiceMetadata != null) {
-
- RestMethodMetadata dubboRestMethodMetadata = dubboRestServiceMetadata
- .getRestMethodMetadata();
-
- GenericService genericService = serviceFactory
- .create(dubboRestServiceMetadata, dubboTranslatedAttributes);
-
- byte[] body = getRequestBody(request);
-
- MutableHttpServerRequest httpServerRequest = new MutableHttpServerRequest(
- request, body);
-
- DubboGenericServiceExecutionContext context = contextFactory
- .create(dubboRestMethodMetadata, httpServerRequest);
-
- GenericException exception = null;
-
- try {
- result = genericService.$invoke(context.getMethodName(),
- context.getParameterTypes(), context.getParameters());
-
- String returnType = dubboRestMethodMetadata.getReturnType();
-
- logger.info("The result is " + result);
-
- }
- catch (GenericException e) {
- exception = e;
- }
- }
-
- return result;
-
- }
-
- private String resolveServiceName(HttpRequest request) {
- URI uri = request.getURI();
- String requestURI = uri.getPath();
- String servletPath = dubboCloudGatewayProperties.getContextPath();
- String part = substringAfter(requestURI, servletPath);
- String serviceName = substringBetween(part, PATH_SEPARATOR, PATH_SEPARATOR);
- return serviceName;
- }
-
- /**
- * TODO : Get the Request Body from HttpRequest.
- * @param request {@link HttpRequest}
- * @return
- */
- private byte[] getRequestBody(HttpRequest request) {
- return new byte[0];
- }
-
- private RequestMetadata buildRequestMetadata(HttpRequest request, String restPath) {
- RequestMetadata requestMetadata = new RequestMetadata();
- requestMetadata.setPath(restPath);
- requestMetadata.setMethod(request.getMethod().toString());
- requestMetadata.setParams(getParameters(request));
- requestMetadata.setHeaders(request.getHeaders());
- return requestMetadata;
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayProperties.java
deleted file mode 100644
index 6ac477599..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/DubboCloudGatewayProperties.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-import static com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayConstants.CONFIG_PROPERTY_PREFIX;
-
-/**
- * The Configuration Properties for Dubbo Cloud Gateway.
- *
- * @author Mercy
- */
-@ConfigurationProperties(prefix = CONFIG_PROPERTY_PREFIX)
-public class DubboCloudGatewayProperties {
-
- /**
- * Enabled or not.
- */
- private boolean enabled = true;
-
- /**
- * The context path for the gateway request mapping.
- */
- private String contextPath = "";
-
- public boolean isEnabled() {
- return enabled;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
-
- public String getContextPath() {
- return contextPath;
- }
-
- public void setContextPath(String contextPath) {
- this.contextPath = contextPath;
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboCloudGatewayAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboCloudGatewayAutoConfiguration.java
deleted file mode 100644
index 81fdf2b5f..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboCloudGatewayAutoConfiguration.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway.autoconfigure;
-
-import com.alibaba.cloud.dubbo.autoconfigure.DubboMetadataAutoConfiguration;
-import com.alibaba.cloud.dubbo.autoconfigure.DubboServiceAutoConfiguration;
-import com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayExecutor;
-import com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayProperties;
-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.factory.ObjectProvider;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.convert.ConversionService;
-
-@Configuration(proxyBeanMethods = false)
-@ConditionalOnProperty(prefix = "dubbo.cloud.gateway", name = "enabled",
- havingValue = "true", matchIfMissing = true)
-@AutoConfigureAfter({ DubboServiceAutoConfiguration.class,
- DubboMetadataAutoConfiguration.class })
-@EnableConfigurationProperties(DubboCloudGatewayProperties.class)
-public class DubboCloudGatewayAutoConfiguration {
-
- @Bean
- @ConditionalOnMissingBean(DubboCloudGatewayExecutor.class)
- public DubboCloudGatewayExecutor dubboCloudGatewayExecutor(
- DubboServiceMetadataRepository repository,
- DubboGenericServiceFactory serviceFactory,
- DubboGenericServiceExecutionContextFactory contextFactory,
- DubboCloudGatewayProperties dubboCloudGatewayProperties,
- ObjectProvider conversionServices) {
- return new DubboCloudGatewayExecutor(repository, serviceFactory, contextFactory,
- dubboCloudGatewayProperties, conversionServices);
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboSpringCloudGatewayAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboSpringCloudGatewayAutoConfiguration.java
deleted file mode 100644
index 3865a69aa..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/autoconfigure/DubboSpringCloudGatewayAutoConfiguration.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway.autoconfigure;
-
-import com.alibaba.cloud.dubbo.autoconfigure.DubboMetadataAutoConfiguration;
-import com.alibaba.cloud.dubbo.autoconfigure.DubboServiceAutoConfiguration;
-import com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayExecutor;
-import com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayProperties;
-import com.alibaba.cloud.dubbo.gateway.bootstrap.DubboSpringCloudGatewayFilter;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.cloud.gateway.route.RouteLocator;
-import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.codec.ServerCodecConfigurer;
-import org.springframework.http.codec.support.DefaultServerCodecConfigurer;
-
-/**
- * The Auto-{@link Configuration} of Dubbo Spring Cloud Gateway.
- *
- * @author Mercy
- */
-@Configuration(proxyBeanMethods = false)
-@ConditionalOnClass(GlobalFilter.class)
-@ConditionalOnProperty(prefix = "dubbo.cloud.gateway", name = "enabled",
- havingValue = "true", matchIfMissing = true)
-@AutoConfigureAfter({ DubboServiceAutoConfiguration.class,
- DubboMetadataAutoConfiguration.class, DubboCloudGatewayAutoConfiguration.class })
-@EnableConfigurationProperties(DubboCloudGatewayProperties.class)
-public class DubboSpringCloudGatewayAutoConfiguration {
-
- private final Log logger = LogFactory.getLog(getClass());
-
- @Bean
- @ConditionalOnMissingBean(ServerCodecConfigurer.class)
- public ServerCodecConfigurer serverCodecConfigurer() {
- return new DefaultServerCodecConfigurer();
- }
-
- @Bean
- public DubboSpringCloudGatewayFilter dubboSpringCloudGatewayFilter(
- DubboCloudGatewayExecutor dubboCloudGatewayExecutor) {
- return new DubboSpringCloudGatewayFilter(dubboCloudGatewayExecutor);
- }
-
- @Bean
- public RouteLocator gatewayRoutes(RouteLocatorBuilder builder) {
- return builder.routes()
- .route(r -> r.path("/**").uri("http://localhost:9090").id("first"))
- .build();
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayFilter.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayFilter.java
deleted file mode 100644
index 4c352c25e..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayFilter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway.bootstrap;
-
-import com.alibaba.cloud.dubbo.gateway.DubboCloudGatewayExecutor;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import reactor.core.publisher.Mono;
-
-import org.springframework.cloud.gateway.filter.GatewayFilter;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.core.Ordered;
-import org.springframework.http.server.reactive.ServerHttpResponse;
-import org.springframework.web.server.ServerWebExchange;
-
-/**
- * The Spring Cloud {@link GatewayFilter Gateway Filter} for Dubbo.
- *
- * @author Mercy
- */
-public class DubboSpringCloudGatewayFilter
- implements GatewayFilter, GlobalFilter, Ordered {
-
- private final Log logger = LogFactory.getLog(getClass());
-
- private int order;
-
- private final DubboCloudGatewayExecutor dubboCloudGatewayExecutor;
-
- public DubboSpringCloudGatewayFilter(
- DubboCloudGatewayExecutor dubboCloudGatewayExecutor) {
- this.dubboCloudGatewayExecutor = dubboCloudGatewayExecutor;
- }
-
- @Override
- public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {
-
- Object result = dubboCloudGatewayExecutor.execute(exchange.getRequest());
-
- if (result == null) {
- chain.filter(exchange);
- }
- else {
- ServerHttpResponse response = exchange.getResponse();
- }
-
- return Mono.empty();
- }
-
- public void setOrder(int order) {
- this.order = order;
- }
-
- @Override
- public int getOrder() {
- return order;
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/resources/META-INF/spring.factories b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 915e8fa29..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,3 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-com.alibaba.cloud.dubbo.gateway.autoconfigure.DubboCloudGatewayAutoConfiguration,\
-com.alibaba.cloud.dubbo.gateway.autoconfigure.DubboSpringCloudGatewayAutoConfiguration
\ No newline at end of file
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayBootstrap.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayBootstrap.java
deleted file mode 100644
index b62180a7d..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/java/com/alibaba/cloud/dubbo/gateway/bootstrap/DubboSpringCloudGatewayBootstrap.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2013-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.cloud.dubbo.gateway.bootstrap;
-
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
-/**
- * The bootstrap class of Dubbo Spring Cloud Gateway.
- *
- * @author Mercy
- */
-@EnableAutoConfiguration
-@EnableDiscoveryClient
-public final class DubboSpringCloudGatewayBootstrap {
-
- private DubboSpringCloudGatewayBootstrap() {
- }
-
- public static void main(String[] args) {
- new SpringApplicationBuilder(DubboSpringCloudGatewayBootstrap.class)
- .properties("spring.profiles.active=nacos").run(args);
- }
-
-}
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/application.yaml b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/application.yaml
deleted file mode 100644
index ef0a53a4a..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/application.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-dubbo:
- protocols:
- dubbo:
- port: -1
-
-server:
- port: 9090
\ No newline at end of file
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/bootstrap.yaml b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/bootstrap.yaml
deleted file mode 100644
index f47438672..000000000
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo-gateway/src/test/resources/bootstrap.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-spring:
- application:
- name: spring-cloud-alibaba-dubbo-gateway
- main:
- allow-bean-definition-overriding: true
-
-
- # default disable all
- cloud:
- nacos:
- username: nacos
- password: nacos
- discovery:
- enabled: false
- register-enabled: false
- zookeeper:
- enabled: false
- consul:
- enabled: false
-
-eureka:
- client:
- enabled: false
-
-
----
-spring:
- profiles: nacos
-
- cloud:
- nacos:
- discovery:
- enabled: true
- register-enabled: true
- server-addr: 127.0.0.1:8848
-
-
----
-spring:
- profiles: eureka
-
-eureka:
- client:
- enabled: true
- service-url:
- defaultZone: http://127.0.0.1:8761/eureka/
-
-
----
-spring:
- profiles: zookeeper
- cloud:
- zookeeper:
- enabled: true
- connect-string: 127.0.0.1:2181
-
-
----
-spring:
- profiles: consul
-
- cloud:
- consul:
- enabled: true
- host: 127.0.0.1
- port: 8500
\ No newline at end of file
diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java
index 34468b09a..ff70950d6 100644
--- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java
+++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/service/DubboMetadataServiceProxy.java
@@ -21,7 +21,6 @@ import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
-import com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository;
import com.alibaba.cloud.dubbo.metadata.repository.ServiceInstanceSelector;
import com.alibaba.cloud.dubbo.util.DubboMetadataUtils;
import org.apache.dubbo.common.URL;
@@ -60,7 +59,6 @@ public class DubboMetadataServiceProxy implements BeanClassLoaderAware, Disposab
public DubboMetadataServiceProxy(
DubboGenericServiceFactory dubboGenericServiceFactory,
- DubboServiceMetadataRepository dubboServiceMetadataRepository,
DubboMetadataUtils dubboMetadataUtils,
ServiceInstanceSelector serviceInstanceSelector,
DiscoveryClient discoveryClient) {