You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/06/04 06:14:36 UTC
[servicecomb-java-chassis] branch master updated: [SCB-1971] minor
change to fix an issue & remove unnecessary Optional
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/master by this push:
new 8d06545 [SCB-1971] minor change to fix an issue & remove unnecessary Optional
8d06545 is described below
commit 8d06545dade69912815f18603e32da9b0f5227ba
Author: Jun Gan <ju...@gmail.com>
AuthorDate: Wed Jun 3 18:09:06 2020 -0400
[SCB-1971] minor change to fix an issue & remove unnecessary Optional
---
.../zeroconfig/ZeroConfigRegistration.java | 71 ++---------------
.../servicecomb/zeroconfig/client/ClientUtil.java | 5 +-
.../zeroconfig/client/ZeroConfigClient.java | 90 +++++++++++++++-------
.../client/ZeroConfigRegistryClientImpl.java | 81 +++++++++----------
.../servicecomb/zeroconfig/server/ServerUtil.java | 5 +-
.../server/ZeroConfigRegistryService.java | 17 ++--
.../zeroconfig/client/TestZeroConfigClient.java | 24 +++---
.../client/TestZeroConfigRegistryClientImpl.java | 9 +--
.../server/TestZeroConfigRegistryService.java | 17 ++--
9 files changed, 142 insertions(+), 177 deletions(-)
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistration.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistration.java
index 745f43f..1de0b82 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistration.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/ZeroConfigRegistration.java
@@ -16,19 +16,13 @@
*/
package org.apache.servicecomb.zeroconfig;
-import com.google.common.annotations.VisibleForTesting;
import com.netflix.config.DynamicPropertyFactory;
import java.util.Collection;
-import org.apache.commons.lang.StringUtils;
-import org.apache.servicecomb.config.ConfigUtil;
-import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.registry.api.Registration;
import org.apache.servicecomb.registry.api.registry.BasePath;
import org.apache.servicecomb.registry.api.registry.Microservice;
-import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
-import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.zeroconfig.client.ClientUtil;
import org.apache.servicecomb.zeroconfig.client.ZeroConfigClient;
import org.apache.servicecomb.zeroconfig.server.ServerUtil;
@@ -47,10 +41,6 @@ public class ZeroConfigRegistration implements Registration {
private ZeroConfigClient zeroConfigClient = ZeroConfigClient.INSTANCE;
- // registration objects
- private Microservice selfMicroservice;
- private MicroserviceInstance selfMicroserviceInstance;
-
@Override
public boolean enabled() {
return DynamicPropertyFactory.getInstance().getBooleanProperty(ENABLED, true).get();
@@ -58,35 +48,11 @@ public class ZeroConfigRegistration implements Registration {
@Override
public void init() {
- // init self Microservice & MicroserviceInstance objects
- MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
- MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(
- loader.getConfigModels());
- MicroserviceFactory microserviceFactory = new MicroserviceFactory();
- this.selfMicroservice = microserviceFactory.create(microserviceDefinition);
- this.selfMicroserviceInstance = selfMicroservice.getInstance();
-
- setServiceIdAndInstanceId();
-
+ zeroConfigClient.init();
ServerUtil.init();
ClientUtil.init();
}
- private void setServiceIdAndInstanceId(){
- // set serviceId
- if (StringUtils.isEmpty(selfMicroservice.getServiceId())) {
- String serviceId = ClientUtil.generateServiceId(selfMicroservice);
- selfMicroservice.setServiceId(serviceId);
- selfMicroserviceInstance.setServiceId(serviceId);
- }
-
- // set instanceId
- if (StringUtils.isEmpty(selfMicroserviceInstance.getInstanceId())) {
- String instanceId = ClientUtil.generateServiceInstanceId();
- selfMicroserviceInstance.setInstanceId(instanceId);
- }
- }
-
@Override
public void run() {
// register service instance
@@ -119,59 +85,38 @@ public class ZeroConfigRegistration implements Registration {
@Override
public MicroserviceInstance getMicroserviceInstance() {
- return this.selfMicroserviceInstance;
+ return zeroConfigClient.getSelfMicroserviceInstance();
}
@Override
public Microservice getMicroservice() {
- return this.selfMicroservice;
+ return zeroConfigClient.getSelfMicroservice();
}
@Override
public String getAppId() {
- return this.selfMicroservice.getAppId();
+ return zeroConfigClient.getSelfMicroservice().getAppId();
}
@Override
public boolean updateMicroserviceInstanceStatus(MicroserviceInstanceStatus status) {
- this.selfMicroserviceInstance.setStatus(status);
+ zeroConfigClient.getSelfMicroserviceInstance().setStatus(status);
return true;
}
@Override
public void addSchema(String schemaId, String content) {
- this.selfMicroservice.addSchema(schemaId, content);
+ zeroConfigClient.getSelfMicroservice().addSchema(schemaId, content);
}
@Override
public void addEndpoint(String endpoint) {
- this.selfMicroserviceInstance.getEndpoints().add(endpoint);
+ zeroConfigClient.getSelfMicroserviceInstance().getEndpoints().add(endpoint);
}
@Override
public void addBasePath(Collection<BasePath> basePaths) {
- this.selfMicroservice.getPaths().addAll(basePaths);
- }
-
- // setter/getter
- public Microservice getSelfMicroservice() {
- return this.selfMicroservice;
- }
-
- public MicroserviceInstance getSelfMicroserviceInstance() {
- return this.selfMicroserviceInstance;
- }
-
- @VisibleForTesting
- public void setSelfMicroserviceInstance(
- MicroserviceInstance selfMicroserviceInstance) {
- this.selfMicroserviceInstance = selfMicroserviceInstance;
- }
-
- @VisibleForTesting
- public void setSelfMicroservice(
- Microservice selfMicroservice) {
- this.selfMicroservice = selfMicroservice;
+ zeroConfigClient.getSelfMicroservice().getPaths().addAll(basePaths);
}
}
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
index 3eb0e78..8cf40b3 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ClientUtil.java
@@ -30,7 +30,6 @@ import java.net.MulticastSocket;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -99,7 +98,7 @@ public class ClientUtil {
TimeUnit.SECONDS);
}
- public static Optional<Map<String, String>> convertToRegisterDataModel(String serviceId,
+ public static Map<String, String> convertToRegisterDataModel(String serviceId,
String microserviceInstanceId,
MicroserviceInstance microserviceInstance, Microservice microservice) {
Map<String, String> serviceInstanceTextAttributesMap = new HashMap<>();
@@ -121,7 +120,7 @@ public class ClientUtil {
serviceInstanceTextAttributesMap
.put(SCHEMA_IDS, String.join(LIST_STRING_SPLITER, microservice.getSchemas()));
- return Optional.of(serviceInstanceTextAttributesMap);
+ return serviceInstanceTextAttributesMap;
}
public static MicroserviceInstance convertToClientMicroserviceInstance(
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
index e52172d..c4c10be 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigClient.java
@@ -25,17 +25,19 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import org.apache.commons.lang.StringUtils;
+import org.apache.servicecomb.config.ConfigUtil;
+import org.apache.servicecomb.config.archaius.sources.MicroserviceConfigLoader;
import org.apache.servicecomb.registry.api.registry.FindInstancesResponse;
import org.apache.servicecomb.registry.api.registry.Microservice;
+import org.apache.servicecomb.registry.api.registry.MicroserviceFactory;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
+import org.apache.servicecomb.registry.definition.MicroserviceDefinition;
import org.apache.servicecomb.registry.version.Version;
import org.apache.servicecomb.registry.version.VersionRule;
import org.apache.servicecomb.registry.version.VersionRuleUtils;
import org.apache.servicecomb.registry.version.VersionUtils;
-import org.apache.servicecomb.zeroconfig.ZeroConfigRegistration;
import org.apache.servicecomb.zeroconfig.server.ServerMicroserviceInstance;
import org.apache.servicecomb.zeroconfig.server.ServerUtil;
import org.apache.servicecomb.zeroconfig.server.ZeroConfigRegistryService;
@@ -54,6 +56,10 @@ public class ZeroConfigClient {
private ZeroConfigRegistryService zeroConfigRegistryService;
private MulticastSocket multicastSocket;
+ // registration objects
+ private Microservice selfMicroservice;
+ private MicroserviceInstance selfMicroserviceInstance;
+
// Constructor
private ZeroConfigClient(ZeroConfigRegistryService zeroConfigRegistryService,
MulticastSocket multicastSocket) {
@@ -70,6 +76,29 @@ public class ZeroConfigClient {
return this;
}
+ public void init() {
+ MicroserviceConfigLoader loader = ConfigUtil.getMicroserviceConfigLoader();
+ MicroserviceDefinition microserviceDefinition = new MicroserviceDefinition(
+ loader.getConfigModels());
+ MicroserviceFactory microserviceFactory = new MicroserviceFactory();
+ selfMicroservice = microserviceFactory.create(microserviceDefinition);
+ selfMicroserviceInstance = selfMicroservice.getInstance();
+
+ // set serviceId
+ if (StringUtils.isEmpty(selfMicroservice.getServiceId())) {
+ String serviceId = ClientUtil.generateServiceId(selfMicroservice);
+ selfMicroservice.setServiceId(serviceId);
+ selfMicroserviceInstance.setServiceId(serviceId);
+ }
+
+ // set instanceId
+ if (StringUtils.isEmpty(selfMicroserviceInstance.getInstanceId())) {
+ String instanceId = ClientUtil.generateServiceInstanceId();
+ selfMicroserviceInstance.setInstanceId(instanceId);
+ }
+
+ }
+
// builder method
private static ZeroConfigClient buildZeroConfigClient() {
MulticastSocket multicastSocket = null;
@@ -154,7 +183,7 @@ public class ZeroConfigClient {
}
public Microservice getMicroservice(String microserviceId) {
- Microservice selfMicroservice = ZeroConfigRegistration.INSTANCE.getSelfMicroservice();
+
// for registration
if (selfMicroservice.getServiceId().equals(microserviceId)) {
return selfMicroservice;
@@ -165,9 +194,7 @@ public class ZeroConfigClient {
}
}
-
public String getSchema(String microserviceId, String schemaId) {
- Microservice selfMicroservice = ZeroConfigRegistration.INSTANCE.getSelfMicroservice();
LOGGER.info("Retrieve schema content for Microservice ID: {}, Schema ID: {}",
microserviceId, schemaId);
// called by service registration task when registering itself
@@ -193,18 +220,16 @@ public class ZeroConfigClient {
}
public MicroserviceInstance findMicroserviceInstance(String serviceId, String instanceId) {
- Optional<ServerMicroserviceInstance> optionalInstance = this.zeroConfigRegistryService.
- findServiceInstance(serviceId, instanceId);
+ ServerMicroserviceInstance instance = this.zeroConfigRegistryService
+ .findServiceInstance(serviceId, instanceId);
- if (optionalInstance.isPresent()) {
- return ClientUtil
- .convertToClientMicroserviceInstance(optionalInstance.get());
- } else {
+ if (instance == null) {
LOGGER.error(
"Invalid serviceId OR instanceId! Failed to retrieve Microservice Instance for serviceId {} and instanceId {}",
serviceId, instanceId);
return null;
}
+ return ClientUtil.convertToClientMicroserviceInstance(instance);
}
public MicroserviceInstances findServiceInstances(String appId, String providerServiceName,
@@ -262,26 +287,35 @@ public class ZeroConfigClient {
private Map<String, String> prepareRegisterData() {
// Convert to Multicast data format
- Microservice selfService = ZeroConfigRegistration.INSTANCE.getSelfMicroservice();
- MicroserviceInstance selfInstance = ZeroConfigRegistration.INSTANCE
- .getSelfMicroserviceInstance();
+ return ClientUtil.convertToRegisterDataModel(selfMicroservice.getServiceId(),
+ selfMicroserviceInstance.getInstanceId(), selfMicroserviceInstance, selfMicroservice);
+ }
- Optional<Map<String, String>> optionalDataMap = ClientUtil
- .convertToRegisterDataModel(selfService.getServiceId(), selfInstance.getInstanceId(),
- selfInstance, selfService);
+ private ServerMicroserviceInstance preUnregisterCheck() {
+ ServerMicroserviceInstance instance = zeroConfigRegistryService
+ .findServiceInstance(selfMicroserviceInstance.getServiceId(),
+ selfMicroserviceInstance.getInstanceId());
+ return instance;
+ }
- return optionalDataMap.orElse(null);
+ public Microservice getSelfMicroservice() {
+ return selfMicroservice;
}
- private ServerMicroserviceInstance preUnregisterCheck() {
- MicroserviceInstance instance = ZeroConfigRegistration.INSTANCE.getSelfMicroserviceInstance();
- String serviceId = instance.getServiceId();
- String instanceId = instance.getInstanceId();
- Optional<ServerMicroserviceInstance> optionalInstance = zeroConfigRegistryService
- .findServiceInstance(serviceId, instanceId);
- if (optionalInstance.isPresent()) {
- return optionalInstance.get();
- }
- return null;
+ @VisibleForTesting
+ public void setSelfMicroservice(
+ Microservice selfMicroservice) {
+ this.selfMicroservice = selfMicroservice;
}
+
+ public MicroserviceInstance getSelfMicroserviceInstance() {
+ return selfMicroserviceInstance;
+ }
+
+ @VisibleForTesting
+ public void setSelfMicroserviceInstance(
+ MicroserviceInstance selfMicroserviceInstance) {
+ this.selfMicroserviceInstance = selfMicroserviceInstance;
+ }
+
}
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
index a159213..f475dde 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/client/ZeroConfigRegistryClientImpl.java
@@ -51,7 +51,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.stream.Collectors;
import org.springframework.web.client.RestTemplate;
@@ -245,7 +244,7 @@ public class ZeroConfigRegistryClientImpl implements ServiceRegistryClient {
try {
Map<String, String> serviceInstanceMap = ClientUtil
.convertToRegisterDataModel(serviceId, instanceId, instance,
- ClientUtil.getMicroserviceSelf()).get();
+ ClientUtil.getMicroserviceSelf());
byte[] instanceData = serviceInstanceMap.toString().getBytes();
DatagramPacket instanceDataPacket = new DatagramPacket(instanceData, instanceData.length,
InetAddress.getByName(GROUP), PORT);
@@ -267,17 +266,18 @@ public class ZeroConfigRegistryClientImpl implements ServiceRegistryClient {
@Override
public List<MicroserviceInstance> getMicroserviceInstance(String consumerId, String providerId) {
List<MicroserviceInstance> microserviceInstanceResultList = new ArrayList<>();
- Optional<List<ServerMicroserviceInstance>> optionalServerMicroserviceInstanceList = this.zeroConfigRegistryService
- .
- getMicroserviceInstance(consumerId, providerId);
- if (optionalServerMicroserviceInstanceList.isPresent()) {
- microserviceInstanceResultList = optionalServerMicroserviceInstanceList.get().stream()
- .map(serverInstance -> {
- return ClientUtil.convertToClientMicroserviceInstance(serverInstance);
- }).collect(Collectors.toList());
- } else {
+ List<ServerMicroserviceInstance> serverMicroserviceInstanceList = this.zeroConfigRegistryService
+ .getMicroserviceInstance(consumerId, providerId);
+ if (serverMicroserviceInstanceList == null || serverMicroserviceInstanceList.isEmpty()) {
LOGGER.error("Invalid serviceId: {}", providerId);
+ return microserviceInstanceResultList;
}
+
+ microserviceInstanceResultList = serverMicroserviceInstanceList.stream()
+ .map(serverInstance -> {
+ return ClientUtil.convertToClientMicroserviceInstance(serverInstance);
+ }).collect(Collectors.toList());
+
return microserviceInstanceResultList;
}
@@ -303,32 +303,32 @@ public class ZeroConfigRegistryClientImpl implements ServiceRegistryClient {
@Override
public boolean unregisterMicroserviceInstance(String serviceId, String instanceId) {
- Optional<ServerMicroserviceInstance> optionalServerMicroserviceInstance = this.zeroConfigRegistryService
+ ServerMicroserviceInstance serverMicroserviceInstance = this.zeroConfigRegistryService
.findServiceInstance(serviceId, instanceId);
- if (optionalServerMicroserviceInstance.isPresent()) {
- try {
- LOGGER.info(
- "Start unregister microservice instance. The instance with servcieId: {} instanceId:{}",
- serviceId, instanceId);
- Map<String, String> unregisterEventMap = new HashMap<>();
- unregisterEventMap.put(EVENT, UNREGISTER_EVENT);
- unregisterEventMap.put(SERVICE_ID, serviceId);
- unregisterEventMap.put(INSTANCE_ID, instanceId);
- byte[] unregisterEventBytes = unregisterEventMap.toString().getBytes();
- DatagramPacket unregisterEventDataPacket = new DatagramPacket(unregisterEventBytes,
- unregisterEventBytes.length,
- InetAddress.getByName(GROUP), PORT);
- this.multicastSocket.send(unregisterEventDataPacket);
- return true;
- } catch (IOException e) {
- LOGGER
- .error("Failed to unregister microservice instance event. servcieId: {} instanceId:{}",
- serviceId, instanceId, e);
- return false;
- }
+ if (serverMicroserviceInstance == null) {
+ return false;
+ }
+
+ try {
+ LOGGER.info(
+ "Start unregister microservice instance. The instance with servcieId: {} instanceId:{}",
+ serviceId, instanceId);
+ Map<String, String> unregisterEventMap = new HashMap<>();
+ unregisterEventMap.put(EVENT, UNREGISTER_EVENT);
+ unregisterEventMap.put(SERVICE_ID, serviceId);
+ unregisterEventMap.put(INSTANCE_ID, instanceId);
+ byte[] unregisterEventBytes = unregisterEventMap.toString().getBytes();
+ DatagramPacket unregisterEventDataPacket = new DatagramPacket(unregisterEventBytes,
+ unregisterEventBytes.length,
+ InetAddress.getByName(GROUP), PORT);
+ this.multicastSocket.send(unregisterEventDataPacket);
+ return true;
+ } catch (IOException e) {
+ LOGGER.error("Failed to unregister microservice instance event. servcieId: {} instanceId:{}",
+ serviceId, instanceId, e);
+ return false;
}
- return false;
}
@Override
@@ -352,7 +352,6 @@ public class ZeroConfigRegistryClientImpl implements ServiceRegistryClient {
AsyncResultCallback<Void> onOpen, AsyncResultCallback<Void> onClose) {
}
-
@Override
public List<MicroserviceInstance> findServiceInstance(String selfMicroserviceId, String appId,
String serviceName, String versionRule) {
@@ -436,19 +435,15 @@ public class ZeroConfigRegistryClientImpl implements ServiceRegistryClient {
@Override
public MicroserviceInstance findServiceInstance(String serviceId, String instanceId) {
- Optional<ServerMicroserviceInstance> optionalServerMicroserviceInstance = this.zeroConfigRegistryService
- .
- findServiceInstance(serviceId, instanceId);
-
- if (optionalServerMicroserviceInstance.isPresent()) {
- return ClientUtil
- .convertToClientMicroserviceInstance(optionalServerMicroserviceInstance.get());
- } else {
+ ServerMicroserviceInstance serverMicroserviceInstance = this.zeroConfigRegistryService
+ .findServiceInstance(serviceId, instanceId);
+ if (serverMicroserviceInstance == null) {
LOGGER.error(
"Invalid serviceId OR instanceId! Failed to retrieve Microservice Instance for serviceId {} and instanceId {}",
serviceId, instanceId);
return null;
}
+ return ClientUtil.convertToClientMicroserviceInstance(serverMicroserviceInstance);
}
// for compatibility with existing registration logic. only used in the existing UT code.
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ServerUtil.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ServerUtil.java
index 824bffa..35a9cb3 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ServerUtil.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ServerUtil.java
@@ -32,7 +32,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@@ -121,9 +120,9 @@ public class ServerUtil {
}
}
- public static Optional<ServerMicroserviceInstance> convertToServerMicroserviceInstance(
+ public static ServerMicroserviceInstance convertToServerMicroserviceInstance(
Map<String, String> serviceInstanceAttributeMap) {
- return Optional.of(buildServerMicroserviceInstanceFromMap(serviceInstanceAttributeMap));
+ return buildServerMicroserviceInstanceFromMap(serviceInstanceAttributeMap);
}
private static ServerMicroserviceInstance buildServerMicroserviceInstanceFromMap(
diff --git a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ZeroConfigRegistryService.java b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ZeroConfigRegistryService.java
index 926580b..6145241 100644
--- a/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ZeroConfigRegistryService.java
+++ b/service-registry/registry-zero-config/src/main/java/org/apache/servicecomb/zeroconfig/server/ZeroConfigRegistryService.java
@@ -23,7 +23,6 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.*;
@@ -44,7 +43,7 @@ public class ZeroConfigRegistryService {
}
// convert to server side ServerMicroserviceInstance object
- Optional<ServerMicroserviceInstance> newServerMicroserviceInstance = ServerUtil
+ ServerMicroserviceInstance newServerMicroserviceInstance = ServerUtil
.convertToServerMicroserviceInstance(serviceAttributeMap);
Map<String, ServerMicroserviceInstance> innerInstanceMap = ServerUtil.microserviceInstanceMap.
computeIfAbsent(serviceId, id -> new ConcurrentHashMap<>());
@@ -55,7 +54,7 @@ public class ZeroConfigRegistryService {
// register a new instance for the service
LOGGER.info("Register a new instance for serviceId: {}, instanceId: {}", serviceId,
instanceId);
- innerInstanceMap.put(instanceId, newServerMicroserviceInstance.get());
+ innerInstanceMap.put(instanceId, newServerMicroserviceInstance);
}
}
@@ -84,22 +83,24 @@ public class ZeroConfigRegistryService {
}
- public Optional<ServerMicroserviceInstance> findServiceInstance(String serviceId,
+ public ServerMicroserviceInstance findServiceInstance(String serviceId,
String instanceId) {
Map<String, ServerMicroserviceInstance> serverMicroserviceInstanceMap = ServerUtil.microserviceInstanceMap
.get(serviceId);
- return serverMicroserviceInstanceMap != null ? Optional
- .ofNullable(serverMicroserviceInstanceMap.get(instanceId)) : Optional.empty();
+ if (serverMicroserviceInstanceMap == null || serverMicroserviceInstanceMap.isEmpty()) {
+ return null;
+ }
+ return serverMicroserviceInstanceMap.get(instanceId);
}
- public Optional<List<ServerMicroserviceInstance>> getMicroserviceInstance(String consumerId,
+ public List<ServerMicroserviceInstance> getMicroserviceInstance(String consumerId,
String providerId) {
Map<String, ServerMicroserviceInstance> instanceIdMap = ServerUtil.microserviceInstanceMap
.get(providerId);
if (instanceIdMap == null || instanceIdMap.isEmpty()) {
throw new IllegalArgumentException("Invalid serviceId, serviceId=" + providerId);
}
- return Optional.ofNullable(new ArrayList<>(instanceIdMap.values()));
+ return new ArrayList<>(instanceIdMap.values());
}
// for scenario: when other service started before this one start
diff --git a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigClient.java b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigClient.java
index 7054f0f..95e2421 100644
--- a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigClient.java
+++ b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigClient.java
@@ -27,12 +27,10 @@ import java.io.IOException;
import java.net.MulticastSocket;
import java.util.ArrayList;
import java.util.List;
-import java.util.Optional;
import org.apache.servicecomb.registry.api.registry.Microservice;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstanceStatus;
import org.apache.servicecomb.registry.api.registry.MicroserviceInstances;
-import org.apache.servicecomb.zeroconfig.ZeroConfigRegistration;
import org.apache.servicecomb.zeroconfig.server.ServerMicroserviceInstance;
import org.apache.servicecomb.zeroconfig.server.ZeroConfigRegistryService;
import org.junit.Assert;
@@ -68,7 +66,8 @@ public class TestZeroConfigClient {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- target = ZeroConfigClient.INSTANCE.initZeroConfigClientWithMocked(zeroConfigRegistryService, multicastSocket);
+ target = ZeroConfigClient.INSTANCE
+ .initZeroConfigClientWithMocked(zeroConfigRegistryService, multicastSocket);
prepareSelfMicroserviceAndInstance();
}
@@ -97,8 +96,8 @@ public class TestZeroConfigClient {
microserviceInstance.setHostName(host);
microservice.setInstance(microserviceInstance);
- ZeroConfigRegistration.INSTANCE.setSelfMicroservice(microservice);
- ZeroConfigRegistration.INSTANCE.setSelfMicroserviceInstance(microserviceInstance);
+ target.setSelfMicroservice(microservice);
+ target.setSelfMicroserviceInstance(microserviceInstance);
}
private ServerMicroserviceInstance prepareServerServiceInstance(boolean withEndpoint) {
@@ -145,7 +144,7 @@ public class TestZeroConfigClient {
@Test
public void test_unregister_withCorrectData_UnregisterShouldSucceed() {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.of(prepareServerServiceInstance(true)));
+ .thenReturn(prepareServerServiceInstance(true));
boolean returnedResult = target.unregister();
@@ -155,7 +154,7 @@ public class TestZeroConfigClient {
@Test
public void test_unregister_withWrongData_UnregisterShouldFail() {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.empty());
+ .thenReturn(null);
boolean returnedResult = target.unregister();
@@ -165,7 +164,7 @@ public class TestZeroConfigClient {
@Test
public void test_unregister_MulticastThrowException_UnregisterShouldFail() throws IOException {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.of(prepareServerServiceInstance(true)));
+ .thenReturn(prepareServerServiceInstance(true));
doThrow(IOException.class).when(multicastSocket).send(anyObject());
boolean returnedResult = target.unregister();
@@ -178,9 +177,7 @@ public class TestZeroConfigClient {
public void test_getMicroservice_forItself_shouldReturnItself_And_NotCallZeroConfigRegistryService() {
Microservice returnedResult = target.getMicroservice(selfServiceId);
- Assert
- .assertEquals(ZeroConfigRegistration.INSTANCE.getSelfMicroservice().getServiceId(),
- returnedResult.getServiceId());
+ Assert.assertEquals(target.getSelfMicroservice().getServiceId(), returnedResult.getServiceId());
verifyZeroInteractions(zeroConfigRegistryService);
}
@@ -212,12 +209,11 @@ public class TestZeroConfigClient {
}
-
// test findMicroserviceInstance method
@Test
public void test_findMicroserviceInstance_forNonExistInstance_shouldReturnNull() {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.empty());
+ .thenReturn(null);
MicroserviceInstance returnedResult = target
.findMicroserviceInstance(selfServiceId, selfInstanceId);
@@ -228,7 +224,7 @@ public class TestZeroConfigClient {
@Test
public void test_findMicroServiceInstance_forExistInstance_shouldReturnInstance() {
when(zeroConfigRegistryService.findServiceInstance(otherServiceId, selfInstanceId))
- .thenReturn(Optional.of(prepareServerServiceInstance(true)));
+ .thenReturn(prepareServerServiceInstance(true));
MicroserviceInstance returnedResult = target
.findMicroserviceInstance(otherServiceId, selfInstanceId);
diff --git a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
index fce6c17..1974bde 100644
--- a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
+++ b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/client/TestZeroConfigRegistryClientImpl.java
@@ -45,7 +45,6 @@ import java.io.IOException;
import java.net.MulticastSocket;
import java.util.ArrayList;
import java.util.List;
-import java.util.Optional;
public class TestZeroConfigRegistryClientImpl {
@@ -303,7 +302,7 @@ public class TestZeroConfigRegistryClientImpl {
public void test_unregisterMicroserviceInstance_whenInstanceNotExist_shoulReturnFalse()
throws IOException {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.empty());
+ .thenReturn(null);
boolean returnedResult = target.unregisterMicroserviceInstance(selfServiceId, selfInstanceId);
@@ -316,7 +315,7 @@ public class TestZeroConfigRegistryClientImpl {
public void test_unregisterMicroserviceInstance_withNullInstanceId_shouldGenerateInstanceId_and_succeed()
throws IOException {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.of(prepareServerServiceInstance(true)));
+ .thenReturn(prepareServerServiceInstance(true));
doNothing().when(multicastSocket).send(anyObject());
boolean returnedResult = target.unregisterMicroserviceInstance(selfServiceId, selfInstanceId);
@@ -381,7 +380,7 @@ public class TestZeroConfigRegistryClientImpl {
@Test
public void test_findServiceInstance_forNonExistInstance_shouldReturnNull() {
when(zeroConfigRegistryService.findServiceInstance(selfServiceId, selfInstanceId))
- .thenReturn(Optional.empty());
+ .thenReturn(null);
MicroserviceInstance returnedResult = target.findServiceInstance(selfServiceId, selfInstanceId);
@@ -391,7 +390,7 @@ public class TestZeroConfigRegistryClientImpl {
@Test
public void test_findServiceInstance_forExistInstance_shouldReturnInstance() {
when(zeroConfigRegistryService.findServiceInstance(otherServiceId, selfInstanceId))
- .thenReturn(Optional.of(prepareServerServiceInstance(true)));
+ .thenReturn(prepareServerServiceInstance(true));
MicroserviceInstance returnedResult = target
.findServiceInstance(otherServiceId, selfInstanceId);
diff --git a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/server/TestZeroConfigRegistryService.java b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/server/TestZeroConfigRegistryService.java
index d264464..ed73d44 100644
--- a/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/server/TestZeroConfigRegistryService.java
+++ b/service-registry/registry-zero-config/src/test/java/org/apache/servicecomb/zeroconfig/server/TestZeroConfigRegistryService.java
@@ -25,7 +25,6 @@ import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.APP_ID;
import static org.apache.servicecomb.zeroconfig.ZeroConfigRegistryConstants.ENDPOINTS;
@@ -175,20 +174,18 @@ public class TestZeroConfigRegistryService {
public void test_findServiceInstance_whenInstanceExist_shouldSucceed() {
ServerUtil.microserviceInstanceMap = prepareServiceInstanceMap(false);
- Optional<ServerMicroserviceInstance> returnedResult = target
- .findServiceInstance(serviceId, instanceId);
+ ServerMicroserviceInstance returnedResult = target.findServiceInstance(serviceId, instanceId);
- Assert.assertTrue(returnedResult.isPresent());
+ Assert.assertNotNull(returnedResult);
}
@Test
public void test_findServiceInstance_whenInstanceNotExist_shouldReturnEmptyOptionalObject() {
ServerUtil.microserviceInstanceMap = prepareServiceInstanceMap(false);
- Optional<ServerMicroserviceInstance> returnedResult = target
- .findServiceInstance(serviceId, instanceId1);
+ ServerMicroserviceInstance returnedResult = target.findServiceInstance(serviceId, instanceId1);
- Assert.assertFalse(returnedResult.isPresent());
+ Assert.assertNull(returnedResult);
}
@Test(expected = IllegalArgumentException.class)
@@ -202,11 +199,11 @@ public class TestZeroConfigRegistryService {
public void test_getMicroserviceInstance_whenServiceHasInstance_shouldReturnAllInstances() {
ServerUtil.microserviceInstanceMap = prepareServiceInstanceMap(true);
- Optional<List<ServerMicroserviceInstance>> returnedResult = target
+ List<ServerMicroserviceInstance> returnedResult = target
.getMicroserviceInstance(serviceId, serviceId);
- Assert.assertTrue(returnedResult.isPresent());
- Assert.assertEquals(2, returnedResult.get().size());
+ Assert.assertNotNull(returnedResult);
+ Assert.assertEquals(2, returnedResult.size());
}
@Test