From e409527a086cbc4db051c1d9a518af14bdc66e04 Mon Sep 17 00:00:00 2001 From: lambdaxiao Date: Mon, 28 Feb 2022 21:41:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=8E=B7=E5=8F=96namespace?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E5=85=A8=E9=83=A8service=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spring-cloud-tencent-dependencies/pom.xml | 2 +- .../discovery/PolarisDiscoveryHandler.java | 20 ++++++++++++++++--- .../discovery/PolarisServiceDiscovery.java | 15 ++++++++++++-- 3 files changed, 31 insertions(+), 6 deletions(-) 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()); } }