msb protocol synch change
authortanghua <tang.hua52@zte.com.cn>
Sat, 6 May 2017 04:20:52 +0000 (12:20 +0800)
committertanghua <tang.hua52@zte.com.cn>
Sat, 6 May 2017 04:20:52 +0000 (12:20 +0800)
Issue-id: OCS-220

routing protocol strategy of synchronous change

Change-Id: I4790bb3270afc4486abb568ed4d438dbb1c2c37b
Signed-off-by: tanghua <tang.hua52@zte.com.cn>
msb-core/apiroute/apiroute-service/src/main/java/org/openo/msb/wrapper/serviceListener/MicroServiceChangeListener.java
msb-core/apiroute/apiroute-service/src/main/java/org/openo/msb/wrapper/util/MicroServiceDB.java
msb-core/apiroute/apiroute-service/src/main/java/org/openo/msb/wrapper/util/RouteUtil.java
msb-core/apiroute/apiroute-service/src/main/resources/iui-route/js/routeController.js

index 412b4e6..50960c7 100644 (file)
@@ -34,272 +34,258 @@ import org.slf4j.LoggerFactory;
 
 
 public class MicroServiceChangeListener implements IMicroServiceChangeListener {
-    
-    private static final Logger LOGGER = LoggerFactory.getLogger(MicroServiceChangeListener.class);
-    
-    @Override
-    public void onSave(Service microServiceInfo,String serverPort) {
-        
-        if("UI".equals(microServiceInfo.getProtocol())){
-            IuiRouteInfo iuiRouteInfo = this.buildIuiRouteInfo(microServiceInfo);
-            if(null != iuiRouteInfo){
-                IuiRouteServiceWrapper.getInstance().saveIuiRouteInstance(iuiRouteInfo);
-            }
-        }
-        else{        
-        
-            if(ifApiRouteUrl(microServiceInfo.getUrl())){
-                ApiRouteInfo apiRouteInfo = this.buildApiRouteInfo(microServiceInfo);
-                if(null != apiRouteInfo){
-                    ApiRouteServiceWrapper.getInstance().saveApiRouteInstance(apiRouteInfo,serverPort);
-                }
-            }
-            else{
-                CustomRouteInfo customRouteInfo = this.buildCustomRouteInfo(microServiceInfo);
-                if(null != customRouteInfo){
-                    CustomRouteServiceWrapper.getInstance().saveCustomRouteInstance(customRouteInfo,serverPort);
-                }
-            }
-        }
-        
-        
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(MicroServiceChangeListener.class);
+
+  @Override
+  public void onSave(Service microServiceInfo, String serverPort) {
+
+    if ("UI".equals(microServiceInfo.getProtocol())) {
+      IuiRouteInfo iuiRouteInfo = this.buildIuiRouteInfo(microServiceInfo);
+      if (null != iuiRouteInfo) {
+        IuiRouteServiceWrapper.getInstance().saveIuiRouteInstance(iuiRouteInfo);
+      }
+    } else if ("REST".equals(microServiceInfo.getProtocol())) {
+      ApiRouteInfo apiRouteInfo = this.buildApiRouteInfo(microServiceInfo);
+      if (null != apiRouteInfo) {
+        ApiRouteServiceWrapper.getInstance().saveApiRouteInstance(apiRouteInfo, serverPort);
+      }
+    } else if ("HTTP".equals(microServiceInfo.getProtocol())) {
+      CustomRouteInfo customRouteInfo = this.buildCustomRouteInfo(microServiceInfo);
+      if (null != customRouteInfo) {
+        CustomRouteServiceWrapper.getInstance()
+            .saveCustomRouteInstance(customRouteInfo, serverPort);
+      }
     }
-    
-    @Override
-    public void onChange(String serviceName, String version, Service microServiceInfo,String serverPort) {
-        
-        if("UI".equals(microServiceInfo.getProtocol())){
-            if(serviceName.startsWith("iui_")||serviceName.startsWith("IUI_")){
-                serviceName=serviceName.substring(4);
-            }
-            IuiRouteInfo iuiRouteInfo = this.buildIuiRouteInfo(microServiceInfo);
-            if(null != iuiRouteInfo){
-                IuiRouteServiceWrapper.getInstance().updateIuiRouteInstance(serviceName, iuiRouteInfo);
-            }
-        }
-        else{
-        
-            if(ifApiRouteUrl(microServiceInfo.getUrl())){
-                ApiRouteInfo apiRouteInfo = this.buildApiRouteInfo(microServiceInfo);
-                if(null != apiRouteInfo){
-                    ApiRouteServiceWrapper.getInstance().updateApiRouteInstance(serviceName, version, apiRouteInfo,serverPort);
-                }
-            }
-            else{
-                if(!serviceName.startsWith("/")){
-                    serviceName="/"+serviceName;
-                }
-                CustomRouteInfo customRouteInfo = this.buildCustomRouteInfo(microServiceInfo);
-                if(null != customRouteInfo){
-                    CustomRouteServiceWrapper.getInstance().updateCustomRouteInstance(serviceName,customRouteInfo,serverPort);
-                }
-            }
-        }
-        
+
+  }
+
+  @Override
+  public void onChange(String serviceName, String version, Service microServiceInfo,
+      String serverPort) {
+
+    if ("UI".equals(microServiceInfo.getProtocol())) {
+      if (serviceName.startsWith("iui_") || serviceName.startsWith("IUI_")) {
+        serviceName = serviceName.substring(4);
+      }
+      IuiRouteInfo iuiRouteInfo = this.buildIuiRouteInfo(microServiceInfo);
+      if (null != iuiRouteInfo) {
+        IuiRouteServiceWrapper.getInstance().updateIuiRouteInstance(serviceName, iuiRouteInfo);
+      }
+    } else if ("REST".equals(microServiceInfo.getProtocol())) {
+      ApiRouteInfo apiRouteInfo = this.buildApiRouteInfo(microServiceInfo);
+      if (null != apiRouteInfo) {
+        ApiRouteServiceWrapper.getInstance().updateApiRouteInstance(serviceName, version,
+            apiRouteInfo, serverPort);
+      }
+    } else if ("HTTP".equals(microServiceInfo.getProtocol())) {
+      if (!serviceName.startsWith("/")) {
+        serviceName = "/" + serviceName;
+      }
+      CustomRouteInfo customRouteInfo = this.buildCustomRouteInfo(microServiceInfo);
+      if (null != customRouteInfo) {
+        CustomRouteServiceWrapper.getInstance().updateCustomRouteInstance(serviceName,
+            customRouteInfo, serverPort);
+      }
     }
-    
-    @Override
-    public void onStatusChange(String serviceName,String url,String version,String protocol,String status) {
-        if("UI".equals(protocol)){
-
-            if(serviceName.startsWith("iui_")||serviceName.startsWith("IUI_")){
-                serviceName=serviceName.substring(4);
-            } 
-           IuiRouteServiceWrapper.getInstance().updateIuiRouteStatus(serviceName, status);
-            
-        }
-        else{
-            if(ifApiRouteUrl(url)){
-                ApiRouteServiceWrapper.getInstance().updateApiRouteStatus(serviceName, version, status);
-            }
-            else{
-                if(!serviceName.startsWith("/")){
-                    serviceName="/"+serviceName;
-                }
-                CustomRouteServiceWrapper.getInstance().updateCustomRouteStatus(serviceName, status); 
-            }
-        }
-        
-      
 
+
+
+  }
+
+  @Override
+  public void onStatusChange(String serviceName, String url, String version, String protocol,
+      String status) {
+    if ("UI".equals(protocol)) {
+
+      if (serviceName.startsWith("iui_") || serviceName.startsWith("IUI_")) {
+        serviceName = serviceName.substring(4);
+      }
+      IuiRouteServiceWrapper.getInstance().updateIuiRouteStatus(serviceName, status);
+
+    } else if ("REST".equals(protocol)) {
+      ApiRouteServiceWrapper.getInstance().updateApiRouteStatus(serviceName, version, status);
+    } else if ("HTTP".equals(protocol)) {
+      if (!serviceName.startsWith("/")) {
+        serviceName = "/" + serviceName;
+      }
+      CustomRouteServiceWrapper.getInstance().updateCustomRouteStatus(serviceName, status);
     }
 
-    @Override
-    public void onDelete(String serviceName,String url, String version,String protocol,String serverPort) {
-        
-        if("UI".equals(protocol)){
-            if(serviceName.startsWith("iui_")||serviceName.startsWith("IUI_")){
-                serviceName=serviceName.substring(4);
-            } 
-           IuiRouteServiceWrapper.getInstance().deleteIuiRoute(serviceName, "*");
-            
-        }
-        else{
-            if(ifApiRouteUrl(url)){
-                ApiRouteServiceWrapper.getInstance().deleteApiRoute(serviceName, version, "*",serverPort);
-            }
-            else{
-
-              
-                if(!serviceName.startsWith("/")){
-                    serviceName="/"+serviceName;
-                }
-                
-                CustomRouteServiceWrapper.getInstance().deleteCustomRoute(serviceName, "*",serverPort); 
-            }
-        }
+  }
+
+  @Override
+  public void onDelete(String serviceName, String url, String version, String protocol,
+      String serverPort) {
+
+    if ("UI".equals(protocol)) {
+      if (serviceName.startsWith("iui_") || serviceName.startsWith("IUI_")) {
+        serviceName = serviceName.substring(4);
+      }
+      IuiRouteServiceWrapper.getInstance().deleteIuiRoute(serviceName, "*");
+
+    } else if ("REST".equals(protocol)) {
+      ApiRouteServiceWrapper.getInstance().deleteApiRoute(serviceName, version, "*", serverPort);
+    } else if ("HTTP".equals(protocol)) {
+      if (!serviceName.startsWith("/")) {
+        serviceName = "/" + serviceName;
+      }
+
+      CustomRouteServiceWrapper.getInstance().deleteCustomRoute(serviceName, "*", serverPort);
     }
-    
-    
-    /** 
-    * @Title ifApiRouteUrl 
-    * @Description TODO(According to judge whether the API registration URL format) 
-    * @param url
-    * @return      
-    * @return boolean    
-    */
-    private boolean ifApiRouteUrl(String url){
-        return RegExpTestUtil.apiRouteUrlRegExpTest(url);
+
+  }
+
+
+  /**
+   * @Title ifApiRouteUrl
+   * @Description TODO(According to judge whether the API registration URL format)
+   * @param url
+   * @return
+   * @return boolean
+   */
+  private boolean ifApiRouteUrl(String url) {
+    return RegExpTestUtil.apiRouteUrlRegExpTest(url);
+  }
+
+
+  /**
+   * From MicroServiceInfo to ApiRouteInfo
+   * 
+   * @param microServiceInfo
+   * @return
+   */
+  private ApiRouteInfo buildApiRouteInfo(Service microServiceInfo) {
+
+    ApiRouteInfo apiRouteInfo = new ApiRouteInfo();
+    apiRouteInfo.setUrl(microServiceInfo.getUrl());
+
+    Set<Node> nodes = microServiceInfo.getNodes();
+    RouteServer[] routeServers = new RouteServer[nodes.size()];
+
+
+    int i = 0;
+    for (Node node : nodes) {
+      RouteServer routeServer = new RouteServer(node.getIp(), node.getPort());
+      routeServers[i] = routeServer;
+      i++;
     }
-    
-   
-    /**
-     * From MicroServiceInfo to ApiRouteInfo
-     * @param microServiceInfo
-     * @return
-     */
-    private ApiRouteInfo buildApiRouteInfo(Service microServiceInfo){
-        ApiRouteInfo apiRouteInfo = new ApiRouteInfo();
-        apiRouteInfo.setUrl(microServiceInfo.getUrl());
-        
-        Set<Node> nodes=microServiceInfo.getNodes();
-        RouteServer[] routeServers=new RouteServer[nodes.size()];
-         
-        
-        int i=0;
-        for(Node node:nodes){
-            RouteServer routeServer = new RouteServer(node.getIp(),node.getPort()); 
-            routeServers[i]=routeServer;
-            i++;
-        }      
-        
-               
-        apiRouteInfo.setServers(routeServers);
-        String[] rangs=StringUtils.split(microServiceInfo.getVisualRange(), "|");
-        if(RouteUtil.contain(rangs, "0")){
-            apiRouteInfo.setVisualRange("0");
-        }
-        else{
-            apiRouteInfo.setVisualRange("1");
-        }
-       
-        
-      if("ip_hash".equals(microServiceInfo.getLb_policy())){
-          apiRouteInfo.setUseOwnUpstream("1");
+
+
+    apiRouteInfo.setServers(routeServers);
+    String[] rangs = StringUtils.split(microServiceInfo.getVisualRange(), "|");
+    if (RouteUtil.contain(rangs, "0")) {
+      apiRouteInfo.setVisualRange("0");
+    } else {
+      apiRouteInfo.setVisualRange("1");
     }
-       
-        
-        
-        apiRouteInfo.setServiceName(microServiceInfo.getServiceName());
-        apiRouteInfo.setVersion(microServiceInfo.getVersion());
-        //TODO:set json and metrics defaultValue
-        String version="".equals(microServiceInfo.getVersion())?"":"/"+microServiceInfo.getVersion();
-        apiRouteInfo.setApiJson(microServiceInfo.getUrl()+"/swagger.json");
-        apiRouteInfo.setMetricsUrl("/admin/metrics");
-        return apiRouteInfo;
+
+
+    if ("ip_hash".equals(microServiceInfo.getLb_policy())) {
+      apiRouteInfo.setUseOwnUpstream("1");
     }
-    
-    
-    /**
-     * From MicroServiceInfo to CustomRouteInfo
-     * @param microServiceInfo
-     * @return
-     */
-    private CustomRouteInfo buildCustomRouteInfo(Service microServiceInfo){
-      
-        CustomRouteInfo customRouteInfo = new CustomRouteInfo();
-        customRouteInfo.setUrl(microServiceInfo.getUrl());
-        
-        Set<Node> nodes=microServiceInfo.getNodes();
-        RouteServer[] routeServers=new RouteServer[nodes.size()];
-         
-        
-        int i=0;
-        for(Node node:nodes){
-            RouteServer routeServer = new RouteServer(node.getIp(),node.getPort()); 
-            routeServers[i]=routeServer;
-            i++;
-        }      
-               
-        customRouteInfo.setServers(routeServers);
-        String[] rangs=StringUtils.split(microServiceInfo.getVisualRange(), "|");
-        if(RouteUtil.contain(rangs, "0")){
-            customRouteInfo.setVisualRange("0");
-        }
-        else{
-            customRouteInfo.setVisualRange("1");
-        }
-        
-        if("ip_hash".equals(microServiceInfo.getLb_policy())){
-            customRouteInfo.setUseOwnUpstream("1");
-        }
-        
-        String serviceName;
-        if(!microServiceInfo.getServiceName().startsWith("/")){
-            serviceName="/"+microServiceInfo.getServiceName();
-        }
-        else{
-            serviceName=microServiceInfo.getServiceName();
-        }
-        customRouteInfo.setServiceName(serviceName);
-       
-        return customRouteInfo;
+
+
+
+    apiRouteInfo.setServiceName(microServiceInfo.getServiceName());
+    apiRouteInfo.setVersion(microServiceInfo.getVersion());
+    // TODO:set json and metrics defaultValue
+    String version =
+        "".equals(microServiceInfo.getVersion()) ? "" : "/" + microServiceInfo.getVersion();
+    apiRouteInfo.setApiJson(microServiceInfo.getUrl() + "/swagger.json");
+    apiRouteInfo.setMetricsUrl("/admin/metrics");
+    return apiRouteInfo;
+  }
+
+
+  /**
+   * From MicroServiceInfo to CustomRouteInfo
+   * 
+   * @param microServiceInfo
+   * @return
+   */
+  private CustomRouteInfo buildCustomRouteInfo(Service microServiceInfo) {
+
+    CustomRouteInfo customRouteInfo = new CustomRouteInfo();
+    customRouteInfo.setUrl(microServiceInfo.getUrl());
+
+    Set<Node> nodes = microServiceInfo.getNodes();
+    RouteServer[] routeServers = new RouteServer[nodes.size()];
+
+
+    int i = 0;
+    for (Node node : nodes) {
+      RouteServer routeServer = new RouteServer(node.getIp(), node.getPort());
+      routeServers[i] = routeServer;
+      i++;
     }
-    
-    
-    /**
-     * From MicroServiceInfo to IuiRouteInfo
-     * @param microServiceInfo
-     * @return
-     */
-    private IuiRouteInfo buildIuiRouteInfo(Service microServiceInfo){
-      
-        IuiRouteInfo iuiRouteInfo = new IuiRouteInfo();
-        iuiRouteInfo.setUrl(microServiceInfo.getUrl());
-               
-        Set<Node> nodes=microServiceInfo.getNodes();
-        RouteServer[] routeServers=new RouteServer[nodes.size()];
-         
-        
-        int i=0;
-        for(Node node:nodes){
-            RouteServer routeServer = new RouteServer(node.getIp(),node.getPort()); 
-            routeServers[i]=routeServer;
-            i++;
-        }      
-               
-        iuiRouteInfo.setServers(routeServers);
-        String[] rangs=StringUtils.split(microServiceInfo.getVisualRange(), "|");
-        if(RouteUtil.contain(rangs, "0")){
-            iuiRouteInfo.setVisualRange("0");
-        }
-        else{
-            iuiRouteInfo.setVisualRange("1");
-        }
-        
-        if("ip_hash".equals(microServiceInfo.getLb_policy())){
-            iuiRouteInfo.setUseOwnUpstream("1");
-        }
-
-        String serviceName=microServiceInfo.getServiceName();
-        if(serviceName.startsWith("iui_")||serviceName.startsWith("IUI_")){
-            serviceName=serviceName.substring(4);
-        }
-        
-        
-        iuiRouteInfo.setServiceName(serviceName);
-       
-        return iuiRouteInfo;
+
+    customRouteInfo.setServers(routeServers);
+    String[] rangs = StringUtils.split(microServiceInfo.getVisualRange(), "|");
+    if (RouteUtil.contain(rangs, "0")) {
+      customRouteInfo.setVisualRange("0");
+    } else {
+      customRouteInfo.setVisualRange("1");
     }
+
+    if ("ip_hash".equals(microServiceInfo.getLb_policy())) {
+      customRouteInfo.setUseOwnUpstream("1");
+    }
+
+    String serviceName;
+    if (!microServiceInfo.getServiceName().startsWith("/")) {
+      serviceName = "/" + microServiceInfo.getServiceName();
+    } else {
+      serviceName = microServiceInfo.getServiceName();
+    }
+    customRouteInfo.setServiceName(serviceName);
+
+    return customRouteInfo;
+  }
+
+
+  /**
+   * From MicroServiceInfo to IuiRouteInfo
+   * 
+   * @param microServiceInfo
+   * @return
+   */
+  private IuiRouteInfo buildIuiRouteInfo(Service microServiceInfo) {
+
+    IuiRouteInfo iuiRouteInfo = new IuiRouteInfo();
+    iuiRouteInfo.setUrl(microServiceInfo.getUrl());
+
+    Set<Node> nodes = microServiceInfo.getNodes();
+    RouteServer[] routeServers = new RouteServer[nodes.size()];
+
+
+    int i = 0;
+    for (Node node : nodes) {
+      RouteServer routeServer = new RouteServer(node.getIp(), node.getPort());
+      routeServers[i] = routeServer;
+      i++;
+    }
+
+    iuiRouteInfo.setServers(routeServers);
+    String[] rangs = StringUtils.split(microServiceInfo.getVisualRange(), "|");
+    if (RouteUtil.contain(rangs, "0")) {
+      iuiRouteInfo.setVisualRange("0");
+    } else {
+      iuiRouteInfo.setVisualRange("1");
+    }
+
+    if ("ip_hash".equals(microServiceInfo.getLb_policy())) {
+      iuiRouteInfo.setUseOwnUpstream("1");
+    }
+
+    String serviceName = microServiceInfo.getServiceName();
+    if (serviceName.startsWith("iui_") || serviceName.startsWith("IUI_")) {
+      serviceName = serviceName.substring(4);
+    }
+
+
+    iuiRouteInfo.setServiceName(serviceName);
+
+    return iuiRouteInfo;
+  }
 }
index 56c8aff..f2e2004 100644 (file)
@@ -395,7 +395,7 @@ public class MicroServiceDB {
      * @return
      */
     private boolean isNeedNotifyByProtocol(String protocol) {
-        return "UI".equalsIgnoreCase(protocol) ||("REST".equalsIgnoreCase(protocol));
+        return "UI".equalsIgnoreCase(protocol) || "REST".equalsIgnoreCase(protocol)  || "HTTP".equalsIgnoreCase(protocol);
     }
     
     /**
index e505e16..c987142 100644 (file)
@@ -47,7 +47,7 @@ public class RouteUtil {
        
        public static final String REQUEST_FAIL = "FAIL";
        
-    public static String PROTOCOL_LIST="REST,UI,MQ,FTP,SNMP,TCP,UDP"; 
+    public static String PROTOCOL_LIST="REST,UI,HTTP,MQ,FTP,SNMP,TCP,UDP"; 
     
     public static DiscoverInfo discoverInfo=new DiscoverInfo();
     
index 90c8bbd..193ce45 100644 (file)
@@ -35,7 +35,7 @@ var vm = avalon
                        },
                        showAPIType:"0",
                        showAPITypeName:[$.i18n.prop("org_openo_msb_route_swagger_type_predefined"),$.i18n.prop("org_openo_msb_route_swagger_type_custominput")],
-                       $msbProtocol :["REST","UI","MQ","FTP","SNMP","TCP","UDP"],
+                       $msbProtocol :["REST","UI","HTTP","MQ","FTP","SNMP","TCP","UDP"],
                        $msbType:["UI","NAF","SAF"],
                        apiJson:{
                                local:"",