From e7e46da2c98d3de51f840793e23f2e5d30cd81ed Mon Sep 17 00:00:00 2001 From: Amaresh Kumar Date: Wed, 29 Aug 2018 18:12:33 +0530 Subject: Critical & Major Sonarfixes in ServiceListConsumer https://sonar.onap.org/project/issues?id=org.onap.msb.apigateway%3Amsb-apigateway-parent&open=AV3BuD_D5bp_wwmIVEXx&resolved=false&severities=BLOCKER&types=BUG Issue-ID: MSB-279 Change-Id: I04879787045639a34091bcad652380095572bbfe Signed-off-by: Amaresh Kumar --- .../wrapper/queue/ServiceListConsumer.java | 76 ++++------------------ 1 file changed, 14 insertions(+), 62 deletions(-) diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java index c673d78..6ed9cf8 100644 --- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java +++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java @@ -1,11 +1,11 @@ /******************************************************************************* * Copyright 2016-2017 ZTE, Inc. and others. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under @@ -35,31 +35,24 @@ import com.fasterxml.jackson.core.JsonToken; public class ServiceListConsumer implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceListConsumer.class); - private boolean isRunning = true; - private int index; - public ServiceListConsumer() { this.index = 0; } public void run() { LOGGER.info("run ServiceList Consumer Thread [" + index + "]"); - while (isRunning) { try { // 取最新一条记录 ServiceData serviceData = QueueManager.getInstance().takeFromServiceListQueue(index); LOGGER.debug("ServiceList Consumer Thread [" + index - + "] take out serviceData from Queue successfully"); - + + "] take out serviceData from Queue successfully"); HttpEntity newValues = serviceData.getData(); - Set newServiceNameList = filterServiceList(newValues); - - if (ServiceListCache.getLatestServiceNamelist().size() == 0) { + if (ServiceListCache.getLatestServiceNamelist().isEmpty()) { boolean initSuccess = initServiceList(newServiceNameList); if (initSuccess) { ServiceListCache.setLatestServiceNamelist(newServiceNameList); @@ -68,8 +61,6 @@ public class ServiceListConsumer implements Runnable { updateServiceList(newServiceNameList); ServiceListCache.setLatestServiceNamelist(newServiceNameList); } - - } catch (Exception e) { LOGGER.error("ServiceListConsumer throw Exception: ", e); } @@ -78,17 +69,14 @@ public class ServiceListConsumer implements Runnable { private void startWatchService(String serviceName) { // start to Watch service nodes - SyncDataManager.startWatchService(serviceName); } private void updateServiceList(Set newServiceNameList) { Set registerServiceNameList = - CommonUtil.getDiffrent(ServiceListCache.getLatestServiceNamelist(), newServiceNameList); - - if (registerServiceNameList.size() > 0) { + CommonUtil.getDiffrent(ServiceListCache.getLatestServiceNamelist(), newServiceNameList); + if (!registerServiceNameList.isEmpty()) { LOGGER.info("***need to start Watch Service num from consul :" + registerServiceNameList.size()); - for (String serviceName : registerServiceNameList) { startWatchService(serviceName); } @@ -97,18 +85,13 @@ public class ServiceListConsumer implements Runnable { private boolean initServiceList(Set newServiceNameList) { LOGGER.info("***start to initialize service List when System startup ***"); - Set dbServiceNameList = MicroServiceWrapper.getInstance().getAllMicroServiceKey(); - if (dbServiceNameList == null) { LOGGER.error("init ServiceList from redis fail "); return false; } - - // 对比删除redis脏数据 Set delServiceNameList = CommonUtil.getDiffrent(newServiceNameList, dbServiceNameList); - LOGGER.info("***need to delete Service num from redis :" + delServiceNameList.size()); for (String serviceName : delServiceNameList) { try { @@ -117,47 +100,24 @@ public class ServiceListConsumer implements Runnable { } catch (Exception e) { LOGGER.error("initialize serviceList :Delete MicroServiceInfo serviceName:" + serviceName + " FAIL : ", - e); + e); } } // 启动同步开启监听全部服务列表 LOGGER.info("***need to start Watch Service num from initialize :" + newServiceNameList.size()); - for (String serviceName : newServiceNameList) { startWatchService(serviceName); } - return true; - } - /* - * private ImmutableSet filterServiceList( final Map> serviceList) - * { if (serviceList == null || serviceList.isEmpty()) { return ImmutableSet.of(); } - * - * final ImmutableSet.Builder builder = ImmutableSet.builder(); - * - * for (Map.Entry> entry : serviceList.entrySet()) { - * - * String key = entry.getKey(); if (key != null && !"consul".equals(key)) { - * - * List value = entry.getValue(); if - * (ServiceFilter.getInstance().isFilterService(value)) { builder.add(key); } } } - * - * LOGGER.info("consul all service num:" + serviceList.size()); - * LOGGER.info("consul filter service num:" + builder.build().size()); - * - * return builder.build(); } - */ private Set filterServiceList(final HttpEntity serviceList) { if (serviceList == null || serviceList.getContentLength() == 0) { - return new HashSet(); + return new HashSet<>(); } - - final Set builder = new HashSet(); - + final Set builder = new HashSet<>(); JsonFactory f = new JsonFactory(); JsonParser jp = null; List tagList = null; @@ -173,31 +133,23 @@ public class ServiceListConsumer implements Runnable { while (jp.nextToken() != JsonToken.END_ARRAY) { tagList.add(jp.getText()); } - - if (serviceName != null && !"consul".equals(serviceName)) { - if (ServiceFilter.getInstance().isFilterService(tagList)) { - builder.add(serviceName); - } + if (serviceName != null && !"consul".equals(serviceName)&&ServiceFilter.getInstance().isFilterService(tagList)) { + builder.add(serviceName); } } } catch (IOException e) { LOGGER.warn("parse service list error", e); - return new HashSet(); + return new HashSet<>(); } finally { try { jp.close(); } catch (IOException e) { LOGGER.warn("parse service list error", e); - return new HashSet(); } } - int latestServiceNum = ServiceListCache.getLatestServiceNamelist().size(); - // if(latestServiceNum!=builder.size()){ LOGGER.info("[consul] all service num:" + inputServiceNum + ", filter service num: new——" + builder.size() - + " old——" + latestServiceNum); - // } - + + " old——" + latestServiceNum); return builder; } -- cgit 1.2.3-korg