diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index dcd69b98..f173b844 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -63,7 +63,7 @@ 1.1.4.Hoxton.SR9-SNAPSHOT - 1.2.2-SNAPSHOT + 1.2.4-SNAPSHOT 10.0.0-M6 2.0.0 diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java index b765a36a..e858d466 100644 --- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java +++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java @@ -26,7 +26,11 @@ import com.tencent.polaris.api.pojo.ServiceInfo; import com.tencent.polaris.api.rpc.GetAllInstancesRequest; import com.tencent.polaris.api.rpc.GetInstancesRequest; import com.tencent.polaris.api.rpc.InstancesResponse; +import com.tencent.polaris.api.rpc.ServicesResponse; +import com.tencent.polaris.api.rpc.GetServicesRequest; + import java.util.Map; + import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -93,4 +97,16 @@ public class PolarisDiscoveryHandler { return providerAPI; } + /** + * Return all service for given namespace + * + * @return service list + */ + public ServicesResponse GetServices() { + String namespace = polarisProperties.getNamespace(); + GetServicesRequest request = new GetServicesRequest(); + request.setNamespace(namespace); + return polarisConsumer.getServices(request); + } + } diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java index c06c3307..31eeb1fb 100644 --- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java +++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java @@ -17,15 +17,21 @@ package com.tencent.cloud.polaris.discovery; +import com.tencent.cloud.polaris.PolarisProperties; import com.tencent.cloud.polaris.pojo.PolarisServiceInstance; import com.tencent.polaris.api.exception.PolarisException; import com.tencent.polaris.api.pojo.Instance; +import com.tencent.polaris.api.pojo.ServiceInfo; import com.tencent.polaris.api.pojo.ServiceInstances; import com.tencent.polaris.api.rpc.InstancesResponse; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; + +import com.tencent.polaris.api.rpc.ServicesResponse; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.ServiceInstance; /** @@ -57,13 +63,18 @@ public class PolarisServiceDiscovery { } /** - * TODO Return the names of all services. + * Return the names of all services. * * @return list of service names * @throws PolarisException polarisException */ public List getServices() throws PolarisException { - return Collections.emptyList(); + return polarisDiscoveryHandler. + GetServices(). + getServices(). + stream(). + map(ServiceInfo::getService). + collect(Collectors.toList()); } } diff --git a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscoveryTest.java b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscoveryTest.java index 77d99d44..5b6c7aa9 100644 --- a/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscoveryTest.java +++ b/spring-cloud-tencent-starters/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscoveryTest.java @@ -94,8 +94,7 @@ public class PolarisServiceDiscoveryTest { this.contextRunner.run(context -> { PolarisServiceDiscovery polarisServiceDiscovery = context.getBean(PolarisServiceDiscovery.class); List services = polarisServiceDiscovery.getServices(); - - assertThat(services.size()).isEqualTo(0); + assertThat(services.size()).isEqualTo(1); }); }