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..103fc3c8 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 @@ -23,10 +23,10 @@ import com.tencent.cloud.polaris.PolarisProperties; import com.tencent.polaris.api.core.ConsumerAPI; import com.tencent.polaris.api.core.ProviderAPI; 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.*; + import java.util.Map; + import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -93,4 +93,18 @@ public class PolarisDiscoveryHandler { return providerAPI; } + /** + * Return all service for given namespace + * + * @return namespace下的服务列表 + */ + public ServicesResponse GetServices() { + String namespace = polarisProperties.getNamespace(); + Map allTransitiveCustomMetadata = MetadataContextHolder.get().getAllTransitiveCustomMetadata(); + GetServicesRequest request = new GetServicesRequest(); + request.setNamespace(namespace); + request.setMetadata(allTransitiveCustomMetadata); + 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()); } }