Critical & Major Sonarfixes in ServiceListConsumer 73/63473/1
authorAmaresh Kumar <kamaresh@in.ibm.com>
Wed, 29 Aug 2018 12:42:33 +0000 (18:12 +0530)
committerAmaresh Kumar <kamaresh@in.ibm.com>
Wed, 29 Aug 2018 12:42:45 +0000 (18:12 +0530)
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 <kamaresh@in.ibm.com>
apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java

index c673d78..6ed9cf8 100644 (file)
@@ -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<HttpEntity> 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<String> 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<String> newServiceNameList) {
         Set<String> 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<String> newServiceNameList) {
         LOGGER.info("***start to initialize  service List when System startup ***");
-
         Set<String> dbServiceNameList = MicroServiceWrapper.getInstance().getAllMicroServiceKey();
-
         if (dbServiceNameList == null) {
             LOGGER.error("init ServiceList from redis fail ");
             return false;
         }
-
-
         // 对比删除redis脏数据
         Set<String> 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<String> filterServiceList( final Map<String, List<String>> serviceList)
-     * { if (serviceList == null || serviceList.isEmpty()) { return ImmutableSet.of(); }
-     * 
-     * final ImmutableSet.Builder<String> builder = ImmutableSet.builder();
-     * 
-     * for (Map.Entry<String, List<String>> entry : serviceList.entrySet()) {
-     * 
-     * String key = entry.getKey(); if (key != null && !"consul".equals(key)) {
-     * 
-     * List<String> 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<String> filterServiceList(final HttpEntity serviceList) {
 
         if (serviceList == null || serviceList.getContentLength() == 0) {
-            return new HashSet<String>();
+            return new HashSet<>();
         }
-
-        final Set<String> builder = new HashSet<String>();
-
+        final Set<String> builder = new HashSet<>();
         JsonFactory f = new JsonFactory();
         JsonParser jp = null;
         List<String> 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<String>();
+            return new HashSet<>();
         } finally {
             try {
                 jp.close();
             } catch (IOException e) {
                 LOGGER.warn("parse service list error", e);
-                return new HashSet<String>();
             }
         }
-
         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;
     }