Introduce MSB Java SDK
[holmes/common.git] / holmes-actions / src / main / java / org / onap / holmes / common / utils / MSBRegisterUtil.java
index 1bb3fe3..8052f78 100644 (file)
 \r
 package org.onap.holmes.common.utils;\r
 \r
+import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;\r
+\r
 import com.eclipsesource.jaxrs.consumer.ConsumerFactory;\r
 import java.io.IOException;\r
 import lombok.extern.slf4j.Slf4j;\r
 import org.jvnet.hk2.annotations.Service;\r
-import org.onap.holmes.common.msb.MicroserviceBusRest;\r
 import org.onap.holmes.common.api.entity.ServiceRegisterEntity;\r
 import org.onap.holmes.common.config.MicroServiceConfig;\r
+import org.onap.holmes.common.exception.CorrelationException;\r
+import org.onap.holmes.common.msb.MicroserviceBusRest;\r
+import org.onap.msb.sdk.discovery.common.RouteException;\r
+import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;\r
+import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;\r
+import org.onap.msb.sdk.httpclient.msb.MSBServiceClient;\r
 \r
 @Slf4j\r
 @Service\r
 public class MSBRegisterUtil {\r
 \r
     public void register(ServiceRegisterEntity entity) throws IOException {\r
-        log.info("start holmes micro service register");\r
+        log.info("Start register Holmes Service to MSB...");\r
         boolean flag = false;\r
         int retry = 0;\r
         while (!flag && retry < 20) {\r
-            log.info("Holmes microservice register. retry:" + retry);\r
+            log.info("Holmes Service Registration. Retry: " + retry);\r
             retry++;\r
             flag = innerRegister(entity);\r
             if (!flag) {\r
-                log.warn("micro service register failed, sleep 30S and try again.");\r
+                log.warn("Failed to register the service to MSB. Sleep 30s and try again.");\r
                 threadSleep(30000);\r
             } else {\r
-                log.info("micro service register success!");\r
+                log.info("Registration succeeded!");\r
                 break;\r
             }\r
         }\r
-        log.info("holmes micro service register end.");\r
+        log.info("Service registration completed.");\r
     }\r
 \r
     private boolean innerRegister(ServiceRegisterEntity entity) {\r
@@ -55,20 +62,52 @@ public class MSBRegisterUtil {
                     MicroServiceConfig.getMsbServerAddr(), MicroserviceBusRest.class);\r
             resourceserviceproxy.registerServce("false", entity);\r
         } catch (Exception error) {\r
-            log.error("microservice register failed!" + error.getMessage(), error);\r
+            log.error("Micro-service registration failed!" + error.getMessage(), error);\r
             return false;\r
         }\r
         return true;\r
     }\r
 \r
+    public void register2Msb(MicroServiceInfo msinfo) throws CorrelationException {\r
+        MSBServiceClient msbClient = new MSBServiceClient(MicroServiceConfig.getMsbServerIp(),\r
+                MicroServiceConfig.getMsbServerPort());\r
+\r
+        log.info("Start register Holmes Service to MSB...");\r
+        MicroServiceFullInfo microServiceFullInfo = null;\r
+        int retry = 0;\r
+        while (null == microServiceFullInfo && retry < 20) {\r
+            log.info("Holmes Service Registration. Retry: " + retry);\r
+            retry++;\r
+            try {\r
+                microServiceFullInfo = msbClient.registerMicroServiceInfo(msinfo, false);\r
+            } catch (RouteException e) {\r
+\r
+            }\r
+\r
+            if (null == microServiceFullInfo) {\r
+                log.warn("Failed to register the service to MSB. Sleep 30s and try again.");\r
+                threadSleep(30000);\r
+            } else {\r
+                log.info("Registration succeeded!");\r
+                break;\r
+            }\r
+        }\r
+\r
+        if (null == microServiceFullInfo) {\r
+            throw new CorrelationException("Failed to register the service to MSB!");\r
+        }\r
+\r
+        log.info("Service registration completed.");\r
+    }\r
+\r
     private void threadSleep(int second) {\r
-        log.info("start sleep ....");\r
+        log.info("Start sleeping...");\r
         try {\r
             Thread.sleep(second);\r
         } catch (InterruptedException error) {\r
-            log.error("thread sleep error.errorMsg:" + error.getMessage(), error);\r
+            log.error("thread sleep error message:" + error.getMessage(), error);\r
             Thread.currentThread().interrupt();\r
         }\r
-        log.info("sleep end .");\r
+        log.info("Wake up.");\r
     }\r
 }
\ No newline at end of file