You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/23 01:17:47 UTC
[incubator-servicecomb-java-chassis] 01/02: SCB-272 do
findServiceInstances after registered self to SC.
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit adc3367364d57968bb6475cba49474fa9a2f612f
Author: wujimin <wu...@huawei.com>
AuthorDate: Mon Jan 22 12:45:25 2018 +0800
SCB-272 do findServiceInstances after registered self to SC.
---
.../client/http/ServiceRegistryClientImpl.java | 9 +++++++++
.../client/http/TestServiceRegistryClientImpl.java | 13 +++++++++++++
2 files changed, 22 insertions(+)
diff --git a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
index 64f9a93..d48d0bc 100644
--- a/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
+++ b/service-registry/src/main/java/org/apache/servicecomb/serviceregistry/client/http/ServiceRegistryClientImpl.java
@@ -583,6 +583,15 @@ public final class ServiceRegistryClientImpl implements ServiceRegistryClient {
@Override
public MicroserviceInstances findServiceInstances(String consumerId, String appId, String serviceName,
String versionRule, String revision) {
+ // must register self first, and then invoke findServiceInstances
+ if (consumerId == null) {
+ LOGGER.error("find microservice instance {}/{}/{} failed, not registered to serviceCenter.",
+ appId,
+ serviceName,
+ versionRule);
+ return null;
+ }
+
MicroserviceInstances microserviceInstances = new MicroserviceInstances();
IpPort ipPort = ipPortManager.getAvailableAddress();
diff --git a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
index a171531..56af6d2 100644
--- a/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
+++ b/service-registry/src/test/java/org/apache/servicecomb/serviceregistry/client/http/TestServiceRegistryClientImpl.java
@@ -29,6 +29,7 @@ import javax.xml.ws.Holder;
import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
+import org.apache.servicecomb.foundation.common.net.IpPort;
import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.serviceregistry.api.response.GetExistenceResponse;
@@ -308,4 +309,16 @@ public class TestServiceRegistryClientImpl {
public void testFindServiceInstance() {
Assert.assertNull(oClient.findServiceInstance("aaa", "bbb"));
}
+
+ @Test
+ public void findServiceInstance_consumerId_null() {
+ new MockUp<IpPortManager>(ipPortManager) {
+ @Mock
+ IpPort getAvailableAddress() {
+ throw new Error("must not invoke this.");
+ }
+ };
+
+ Assert.assertNull(oClient.findServiceInstance(null, "appId", "serviceName", "1.0.0+"));
+ }
}
--
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.