Removed MSB Dependencies 57/135857/1
authorGuangrong Fu <fu.guangrong@zte.com.cn>
Mon, 4 Sep 2023 11:03:50 +0000 (19:03 +0800)
committerGuangrong Fu <fu.guangrong@zte.com.cn>
Mon, 4 Sep 2023 11:03:50 +0000 (19:03 +0800)
Issue-ID: HOLMES-629
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
Change-Id: Ia74c8456822ba71f465a7142431327a884c50a70

18 files changed:
holmes-actions/pom.xml
holmes-actions/src/main/java/org/onap/holmes/common/msb/MsbRegister.java [moved from holmes-actions/src/main/java/org/onap/holmes/common/utils/MsbRegister.java with 89% similarity]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/CustomDateSerializer.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/KeyValuePair.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfo.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceInfo.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Node.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/NodeInfo.java [new file with mode: 0644]
holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Service.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/MsbRegisterTest.java [moved from holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java with 96% similarity]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/CustomDateSerializerTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/KeyValuePairTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfoTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceInfoTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeInfoTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeTest.java [new file with mode: 0644]
holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/ServiceTest.java [new file with mode: 0644]
pom.xml

index f132e80..01c7b8c 100644 (file)
@@ -7,7 +7,7 @@
        OR CONDITIONS OF ANY KIND, either express or implied. See the License for\r
        the specific language governing permissions and limitations under the License. -->\r
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\r
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\r
     <modelVersion>4.0.0</modelVersion>\r
     <parent>\r
         <groupId>org.onap.holmes.common</groupId>\r
     <packaging>jar</packaging>\r
     <artifactId>holmes-actions</artifactId>\r
     <dependencies>\r
-        <dependency>\r
-            <groupId>org.onap.msb.java-sdk</groupId>\r
-            <artifactId>msb-java-sdk</artifactId>\r
-            <scope>provided</scope>\r
-            <exclusions>\r
-                <exclusion>\r
-                    <groupId>com.eclipsesource.jaxrs</groupId>\r
-                    <artifactId>jersey-all</artifactId>\r
-                </exclusion>\r
-                <exclusion>\r
-                    <groupId>ch.qos.logback</groupId>\r
-                    <artifactId>logback-classic</artifactId>\r
-                </exclusion>\r
-                <exclusion>\r
-                    <groupId>org.slf4j</groupId>\r
-                    <artifactId>slf4j-api</artifactId>\r
-                </exclusion>\r
-            </exclusions>\r
-        </dependency>\r
         <dependency>\r
             <groupId>org.projectlombok</groupId>\r
             <artifactId>lombok</artifactId>\r
             <artifactId>jakarta.ws.rs-api</artifactId>\r
             <version>${jakarta.ws.rs.version}</version>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>com.fasterxml.jackson.core</groupId>\r
+            <artifactId>jackson-annotations</artifactId>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>com.fasterxml.jackson.core</groupId>\r
+            <artifactId>jackson-databind</artifactId>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>org.apache.commons</groupId>\r
+            <artifactId>commons-lang3</artifactId>\r
+            <version>3.13.0</version>\r
+        </dependency>\r
     </dependencies>\r
     <build>\r
         <resources>\r
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.onap.holmes.common.utils;
+package org.onap.holmes.common.msb;
 
 import jakarta.ws.rs.client.Entity;
 import jakarta.ws.rs.core.MediaType;
@@ -22,8 +22,10 @@ import lombok.Setter;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.holmes.common.config.MicroServiceConfig;
 import org.onap.holmes.common.exception.CorrelationException;
-import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;
-import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;
+import org.onap.holmes.common.msb.entity.MicroServiceFullInfo;
+import org.onap.holmes.common.msb.entity.MicroServiceInfo;
+import org.onap.holmes.common.utils.GsonUtil;
+import org.onap.holmes.common.utils.JerseyClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -60,14 +62,14 @@ public class MsbRegister {
         MicroServiceFullInfo microServiceFullInfo = null;
         int retry = 0;
         while (null == microServiceFullInfo && retry < totalRetryTimes) {
-            int time  = interval * ++retry;
+            int time = interval * ++retry;
             try {
                 log.info("Holmes Service Registration. Times: " + retry);
                 microServiceFullInfo = client
                         .header("Accept", MediaType.APPLICATION_JSON)
                         .queryParam("createOrUpdate", true)
                         .post(String.format("%s://%s:%s/api/microservices/v1/services",
-                                isHttpsEnabled ? PROTOCOL_HTTPS : PROTOCOL_HTTP, msbAddrInfo[0], msbAddrInfo[1]),
+                                        isHttpsEnabled ? PROTOCOL_HTTPS : PROTOCOL_HTTP, msbAddrInfo[0], msbAddrInfo[1]),
                                 Entity.entity(msinfo, MediaType.APPLICATION_JSON),
                                 MicroServiceFullInfo.class);
 
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/CustomDateSerializer.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/CustomDateSerializer.java
new file mode 100644 (file)
index 0000000..4f6c012
--- /dev/null
@@ -0,0 +1,35 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class CustomDateSerializer extends JsonSerializer<Date> {
+    public CustomDateSerializer() {
+    }
+
+    public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
+        jsonGenerator.writeString(sdf.format(value));
+    }
+}
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/KeyValuePair.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/KeyValuePair.java
new file mode 100644 (file)
index 0000000..d35b69e
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import java.io.Serializable;
+
+public class KeyValuePair implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String key;
+    private String value;
+
+    public String getKey() {
+        return this.key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public KeyValuePair() {
+    }
+
+    public KeyValuePair(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+}
\ No newline at end of file
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfo.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfo.java
new file mode 100644 (file)
index 0000000..644f814
--- /dev/null
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import java.io.Serializable;
+import java.util.Iterator;
+
+public class MicroServiceFullInfo extends Service<NodeInfo> implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String status = "1";
+
+    public MicroServiceFullInfo() {
+    }
+
+    public String getStatus() {
+        return this.status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String toString() {
+        StringBuffer buf = new StringBuffer();
+        buf.append("MicroService List:").append("\r\n");
+        buf.append("serviceName:").append(this.getServiceName()).append("\r\n");
+        buf.append("version:").append(this.getVersion()).append("\r\n");
+        buf.append("url:").append(this.getUrl()).append("\r\n");
+        buf.append("protocol:").append(this.getProtocol()).append("\r\n");
+        buf.append("visualRange:").append(this.getVisualRange()).append("\r\n");
+        buf.append("nodes:").append("\r\n");
+        Iterator nodes = this.getNodes().iterator();
+
+        while (nodes.hasNext()) {
+            NodeInfo nodeInstace = (NodeInfo) nodes.next();
+            buf.append("  nodeId-").append(nodeInstace.getNodeId()).append("\r\n");
+            buf.append("  ip-").append(nodeInstace.getIp()).append("\r\n");
+            buf.append("  port-").append(nodeInstace.getPort()).append("\r\n");
+            buf.append("  ttl-").append(nodeInstace.getTtl()).append("\r\n");
+            buf.append("  Created_at-").append(nodeInstace.getCreated_at()).append("\r\n");
+            buf.append("  Updated_at-").append(nodeInstace.getUpdated_at()).append("\r\n");
+            buf.append("  Expiration-").append(nodeInstace.getExpiration()).append("\r\n");
+        }
+
+        buf.append("metadata:").append("\r\n");
+        if (this.getMetadata() != null && this.getMetadata().size() > 0) {
+            nodes = this.getMetadata().iterator();
+            while (nodes.hasNext()) {
+                KeyValuePair keyValuePair = (KeyValuePair) nodes.next();
+                buf.append("  key-").append(keyValuePair.getKey()).append("\r\n");
+                buf.append("  value-").append(keyValuePair.getValue()).append("\r\n");
+            }
+        }
+
+        return buf.toString();
+    }
+}
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceInfo.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceInfo.java
new file mode 100644 (file)
index 0000000..16fd0b3
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import java.io.Serializable;
+import java.util.Iterator;
+
+public class MicroServiceInfo extends Service<Node> implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    public MicroServiceInfo() {
+    }
+
+    public String toString() {
+        StringBuilder buf = new StringBuilder();
+        buf.append("MicroService List:").append("\r\n");
+        buf.append("serviceName:").append(this.getServiceName()).append("\r\n");
+        buf.append("version:").append(this.getVersion()).append("\r\n");
+        buf.append("url:").append(this.getUrl()).append("\r\n");
+        buf.append("protocol:").append(this.getProtocol()).append("\r\n");
+        buf.append("visualRange:").append(this.getVisualRange()).append("\r\n");
+        buf.append("enable_ssl:").append(this.isEnable_ssl()).append("\r\n");
+        buf.append("nodes:").append("\r\n");
+        Iterator nodes = this.getNodes().iterator();
+
+        while (nodes.hasNext()) {
+            Node nodeInstace = (Node) nodes.next();
+            buf.append("  ip-").append(nodeInstace.getIp()).append("\r\n");
+            buf.append("  port-").append(nodeInstace.getPort()).append("\r\n");
+            buf.append("  ttl-").append(nodeInstace.getTtl()).append("\r\n");
+        }
+
+        return buf.toString();
+    }
+}
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Node.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Node.java
new file mode 100644 (file)
index 0000000..1e17a05
--- /dev/null
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.io.Serializable;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Node implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String ip;
+    private String port;
+    private String ttl = "";
+    private String checkType = "";
+    private String checkUrl = "";
+    private String checkInterval;
+    private String checkTimeOut;
+
+    public Node() {
+    }
+
+    public String getIp() {
+        return this.ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public String getPort() {
+        return this.port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    public String getTtl() {
+        return this.ttl;
+    }
+
+    public void setTtl(String ttl) {
+        this.ttl = ttl;
+    }
+
+    public String getCheckType() {
+        return this.checkType;
+    }
+
+    public void setCheckType(String checkType) {
+        this.checkType = checkType;
+    }
+
+    public String getCheckUrl() {
+        return this.checkUrl;
+    }
+
+    public void setCheckUrl(String checkUrl) {
+        this.checkUrl = checkUrl;
+    }
+
+    public String getCheckInterval() {
+        return this.checkInterval;
+    }
+
+    public void setCheckInterval(String checkInterval) {
+        this.checkInterval = checkInterval;
+    }
+
+    public String getCheckTimeOut() {
+        return this.checkTimeOut;
+    }
+
+    public void setCheckTimeOut(String checkTimeOut) {
+        this.checkTimeOut = checkTimeOut;
+    }
+
+    public String toString() {
+        return this.ip + ":" + this.port + "  ttl:" + this.ttl;
+    }
+}
+
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/NodeInfo.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/NodeInfo.java
new file mode 100644 (file)
index 0000000..de2378d
--- /dev/null
@@ -0,0 +1,80 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+import java.util.Date;
+
+@JsonIgnoreProperties(
+        ignoreUnknown = true
+)
+public class NodeInfo extends Node {
+    private static final long serialVersionUID = 8955786461351557306L;
+    private String nodeId;
+    private String status;
+    @JsonSerialize(using = CustomDateSerializer.class)
+    private Date expiration;
+    @JsonSerialize(using = CustomDateSerializer.class)
+    private Date created_at;
+    @JsonSerialize(using = CustomDateSerializer.class)
+    private Date updated_at;
+
+    public NodeInfo() {
+    }
+
+    public Date getExpiration() {
+        return this.expiration;
+    }
+
+    public void setExpiration(Date expiration) {
+        this.expiration = expiration;
+    }
+
+    public Date getCreated_at() {
+        return this.created_at;
+    }
+
+    public void setCreated_at(Date created_at) {
+        this.created_at = created_at;
+    }
+
+    public Date getUpdated_at() {
+        return this.updated_at;
+    }
+
+    public void setUpdated_at(Date updated_at) {
+        this.updated_at = updated_at;
+    }
+
+    public String getNodeId() {
+        return this.nodeId;
+    }
+
+    public void setNodeId(String nodeId) {
+        this.nodeId = nodeId;
+    }
+
+    public String getStatus() {
+        return this.status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Service.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Service.java
new file mode 100644 (file)
index 0000000..a852d24
--- /dev/null
@@ -0,0 +1,121 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Set;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class Service<T> implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private String serviceName;
+    private String version = "";
+    private String url = "";
+    private String protocol = "";
+    private String visualRange = "1";
+    private String lb_policy = "";
+    private String path = "";
+    private Set<T> nodes;
+    private List<KeyValuePair> metadata;
+    private boolean enable_ssl = false;
+
+    public Service() {
+    }
+
+    public boolean isEnable_ssl() {
+        return this.enable_ssl;
+    }
+
+    public void setEnable_ssl(boolean enable_ssl) {
+        this.enable_ssl = enable_ssl;
+    }
+
+    public String getPath() {
+        return this.path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public String getLb_policy() {
+        return this.lb_policy;
+    }
+
+    public void setLb_policy(String lb_policy) {
+        this.lb_policy = lb_policy;
+    }
+
+    public List<KeyValuePair> getMetadata() {
+        return this.metadata;
+    }
+
+    public void setMetadata(List<KeyValuePair> metadata) {
+        this.metadata = metadata;
+    }
+
+    public Set<T> getNodes() {
+        return this.nodes;
+    }
+
+    public void setNodes(Set<T> nodes) {
+        this.nodes = nodes;
+    }
+
+    public String getServiceName() {
+        return this.serviceName;
+    }
+
+    public void setServiceName(String serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public String getVersion() {
+        return this.version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public String getUrl() {
+        return this.url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getProtocol() {
+        return this.protocol;
+    }
+
+    public void setProtocol(String protocol) {
+        this.protocol = protocol;
+    }
+
+    public String getVisualRange() {
+        return this.visualRange;
+    }
+
+    public void setVisualRange(String visualRange) {
+        this.visualRange = visualRange;
+    }
+}
@@ -1,5 +1,5 @@
 /**
- * Copyright 2017-2022 ZTE Corporation.
+ * Copyright 2017-2023 ZTE Corporation.
  * <p>
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * limitations under the License.
  */
 
-package org.onap.holmes.common.utils;
+package org.onap.holmes.common.msb;
 
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.MediaType;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.onap.holmes.common.config.MicroServiceConfig;
 import org.onap.holmes.common.exception.CorrelationException;
-import org.onap.msb.sdk.discovery.entity.MicroServiceFullInfo;
-import org.onap.msb.sdk.discovery.entity.MicroServiceInfo;
+import org.onap.holmes.common.msb.entity.MicroServiceFullInfo;
+import org.onap.holmes.common.msb.entity.MicroServiceInfo;
+import org.onap.holmes.common.utils.GsonUtil;
+import org.onap.holmes.common.utils.JerseyClient;
 import org.powermock.api.easymock.PowerMock;
 import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import jakarta.ws.rs.client.Entity;
-import jakarta.ws.rs.core.MediaType;
-
 import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.expect;
 import static org.powermock.api.easymock.PowerMock.createMock;
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/CustomDateSerializerTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/CustomDateSerializerTest.java
new file mode 100644 (file)
index 0000000..fb105e8
--- /dev/null
@@ -0,0 +1,32 @@
+package org.onap.holmes.common.msb.entity;
+
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import static org.junit.Assert.*;
+
+public class CustomDateSerializerTest {
+    @Test
+    public void testSerialize() throws IOException {
+        Date date = new Date();
+
+        StringWriter writer = new StringWriter();
+        JsonGenerator jsonGenerator = new JsonFactory().createGenerator(writer);
+        SerializerProvider provider = new ObjectMapper().getSerializerProvider();
+
+        CustomDateSerializer serializer = new CustomDateSerializer();
+        serializer.serialize(date, jsonGenerator, provider);
+        jsonGenerator.flush();
+
+        String expectedOutput = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(date);
+        assertEquals("\"" + expectedOutput + "\"", writer.toString());
+    }
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/KeyValuePairTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/KeyValuePairTest.java
new file mode 100644 (file)
index 0000000..9c1bad2
--- /dev/null
@@ -0,0 +1,43 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class KeyValuePairTest {
+
+    @Test
+    public void testGettersAndSetters() {
+        KeyValuePair pair = new KeyValuePair();
+        pair.setKey("myKey");
+        pair.setValue("myValue");
+
+        assertEquals("myKey", pair.getKey());
+        assertEquals("myValue", pair.getValue());
+    }
+
+    @Test
+    public void testConstructor() {
+        KeyValuePair pair = new KeyValuePair("key1", "value1");
+
+        assertEquals("key1", pair.getKey());
+        assertEquals("value1", pair.getValue());
+    }
+
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfoTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfoTest.java
new file mode 100644 (file)
index 0000000..8e63b59
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import java.util.*;
+
+import static org.junit.Assert.*;
+
+public class MicroServiceFullInfoTest {
+    @Test
+    public void testGettersAndSetters() {
+        MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo();
+        microServiceFullInfo.setServiceName("service-name");
+        microServiceFullInfo.setVersion("1.0");
+        microServiceFullInfo.setUrl("http://example.com");
+        microServiceFullInfo.setProtocol("http");
+        microServiceFullInfo.setVisualRange("local");
+        microServiceFullInfo.setStatus("active");
+
+        Set<NodeInfo> nodes = new HashSet<>();
+        NodeInfo nodeInfo = new NodeInfo();
+        nodeInfo.setNodeId("node-1");
+        nodeInfo.setIp("127.0.0.1");
+        nodeInfo.setPort("8080");
+        nodeInfo.setTtl("300");
+        nodeInfo.setCreated_at(new Date());
+        nodeInfo.setUpdated_at(new Date());
+        nodeInfo.setExpiration(new Date());
+        nodes.add(nodeInfo);
+        microServiceFullInfo.setNodes(nodes);
+
+        List<KeyValuePair> metadata = new ArrayList<>();
+        metadata.add(new KeyValuePair("key1", "value1"));
+        metadata.add(new KeyValuePair("key2", "value2"));
+        microServiceFullInfo.setMetadata(metadata);
+
+        assertEquals("service-name", microServiceFullInfo.getServiceName());
+        assertEquals("1.0", microServiceFullInfo.getVersion());
+        assertEquals("http://example.com", microServiceFullInfo.getUrl());
+        assertEquals("http", microServiceFullInfo.getProtocol());
+        assertEquals("local", microServiceFullInfo.getVisualRange());
+        assertEquals("active", microServiceFullInfo.getStatus());
+        assertEquals(nodes, microServiceFullInfo.getNodes());
+        assertEquals(metadata, microServiceFullInfo.getMetadata());
+    }
+
+    @Test
+    public void testToString() {
+        MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo();
+        microServiceFullInfo.setServiceName("service-name");
+        microServiceFullInfo.setVersion("1.0");
+        microServiceFullInfo.setUrl("http://example.com");
+        microServiceFullInfo.setProtocol("http");
+        microServiceFullInfo.setVisualRange("local");
+        microServiceFullInfo.setStatus("active");
+
+        NodeInfo nodeInfo = new NodeInfo();
+        nodeInfo.setNodeId("node-1");
+        nodeInfo.setIp("127.0.0.1");
+        nodeInfo.setPort("8080");
+        nodeInfo.setTtl("300");
+        nodeInfo.setCreated_at(new Date());
+        nodeInfo.setUpdated_at(new Date());
+        nodeInfo.setExpiration(new Date());
+
+        Set<NodeInfo> nodes = new HashSet<>();
+        nodes.add(nodeInfo);
+        microServiceFullInfo.setNodes(nodes);
+
+        List<KeyValuePair> metadata = new ArrayList<>();
+        metadata.add(new KeyValuePair("key1", "value1"));
+        metadata.add(new KeyValuePair("key2", "value2"));
+        microServiceFullInfo.setMetadata(metadata);
+
+        // Test the toString method
+        String expectedOutput = "MicroService List:\r\n" +
+                "serviceName:service-name\r\n" +
+                "version:1.0\r\n" +
+                "url:http://example.com\r\n" +
+                "protocol:http\r\n" +
+                "visualRange:local\r\n" +
+                "nodes:\r\n" +
+                "  nodeId-node-1\r\n" +
+                "  ip-127.0.0.1\r\n" +
+                "  port-8080\r\n" +
+                "  ttl-300\r\n" +
+                "  Created_at-" + nodeInfo.getCreated_at() + "\r\n" +
+                "  Updated_at-" + nodeInfo.getUpdated_at() + "\r\n" +
+                "  Expiration-" + nodeInfo.getExpiration() + "\r\n" +
+                "metadata:\r\n" +
+                "  key-key1\r\n" +
+                "  value-value1\r\n" +
+                "  key-key2\r\n" +
+                "  value-value2\r\n";
+
+        assertEquals(expectedOutput, microServiceFullInfo.toString());
+    }
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceInfoTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceInfoTest.java
new file mode 100644 (file)
index 0000000..aa89f19
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+
+public class MicroServiceInfoTest {
+    @Test
+    public void testToString() {
+        MicroServiceInfo microServiceInfo = getMicroServiceInfo();
+
+        String expectedOutput = "MicroService List:\r\n" +
+                "serviceName:service-name\r\n" +
+                "version:1.0\r\n" +
+                "url:http://example.com\r\n" +
+                "protocol:http\r\n" +
+                "visualRange:local\r\n" +
+                "enable_ssl:true\r\n" +
+                "nodes:\r\n" +
+                "  ip-127.0.0.1\r\n" +
+                "  port-8080\r\n" +
+                "  ttl-300\r\n";
+
+        assertEquals(expectedOutput, microServiceInfo.toString());
+    }
+
+    private static MicroServiceInfo getMicroServiceInfo() {
+        MicroServiceInfo microServiceInfo = new MicroServiceInfo();
+        microServiceInfo.setServiceName("service-name");
+        microServiceInfo.setVersion("1.0");
+        microServiceInfo.setUrl("http://example.com");
+        microServiceInfo.setProtocol("http");
+        microServiceInfo.setVisualRange("local");
+        microServiceInfo.setEnable_ssl(true);
+
+        Set<Node> nodes = new HashSet<>();
+        Node node = new Node();
+        node.setIp("127.0.0.1");
+        node.setPort("8080");
+        node.setTtl("300");
+        nodes.add(node);
+        microServiceInfo.setNodes(nodes);
+        return microServiceInfo;
+    }
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeInfoTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeInfoTest.java
new file mode 100644 (file)
index 0000000..9458dcf
--- /dev/null
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import java.util.Date;
+
+import static org.junit.Assert.*;
+
+public class NodeInfoTest {
+    @Test
+    public void testGettersAndSetters() {
+        NodeInfo nodeInfo = new NodeInfo();
+        nodeInfo.setNodeId("node-1");
+        nodeInfo.setStatus("active");
+
+        Date expiration = new Date();
+        nodeInfo.setExpiration(expiration);
+
+        Date createdAt = new Date();
+        nodeInfo.setCreated_at(createdAt);
+
+        Date updatedAt = new Date();
+        nodeInfo.setUpdated_at(updatedAt);
+
+        assertEquals("node-1", nodeInfo.getNodeId());
+        assertEquals("active", nodeInfo.getStatus());
+        assertEquals(expiration, nodeInfo.getExpiration());
+        assertEquals(createdAt, nodeInfo.getCreated_at());
+        assertEquals(updatedAt, nodeInfo.getUpdated_at());
+    }
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeTest.java
new file mode 100644 (file)
index 0000000..7555ad3
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class NodeTest {
+
+    @Test
+    public void testToString() {
+        Node node = new Node();
+        node.setIp("127.0.0.1");
+        node.setPort("8080");
+        node.setTtl("300");
+
+        String expectedOutput = "127.0.0.1:8080  ttl:300";
+        assertEquals(expectedOutput, node.toString());
+    }
+
+    @Test
+    public void testGettersAndSetters() {
+        Node node = new Node();
+        node.setIp("192.168.1.1");
+        node.setPort("8888");
+        node.setTtl("600");
+        node.setCheckType("http");
+        node.setCheckUrl("/health");
+        node.setCheckInterval("30s");
+        node.setCheckTimeOut("5s");
+
+        assertEquals("192.168.1.1", node.getIp());
+        assertEquals("8888", node.getPort());
+        assertEquals("600", node.getTtl());
+        assertEquals("http", node.getCheckType());
+        assertEquals("/health", node.getCheckUrl());
+        assertEquals("30s", node.getCheckInterval());
+        assertEquals("5s", node.getCheckTimeOut());
+    }
+
+}
\ No newline at end of file
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/ServiceTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/ServiceTest.java
new file mode 100644 (file)
index 0000000..ac50841
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+ * Copyright 2023 ZTE Corporation.
+ * <p>
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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 the License.
+ */
+
+package org.onap.holmes.common.msb.entity;
+
+import org.junit.Test;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import static org.junit.Assert.*;
+
+public class ServiceTest {
+    @Test
+    public void testGettersAndSetters() {
+        Service<Integer> service = new Service<>();
+        service.setServiceName("my-service");
+        service.setVersion("1.0");
+        service.setUrl("http://example.com");
+        service.setProtocol("http");
+        service.setVisualRange("local");
+        service.setLb_policy("round-robin");
+        service.setPath("/api");
+        service.setEnable_ssl(true);
+
+        Set<Integer> nodes = new HashSet<>();
+        nodes.add(8080);
+        nodes.add(8081);
+        service.setNodes(nodes);
+
+        List<KeyValuePair> metadata = List.of(new KeyValuePair("key1", "value1"), new KeyValuePair("key2", "value2"));
+        service.setMetadata(metadata);
+
+        assertEquals("my-service", service.getServiceName());
+        assertEquals("1.0", service.getVersion());
+        assertEquals("http://example.com", service.getUrl());
+        assertEquals("http", service.getProtocol());
+        assertEquals("local", service.getVisualRange());
+        assertEquals("round-robin", service.getLb_policy());
+        assertEquals("/api", service.getPath());
+        assertEquals(true, service.isEnable_ssl());
+        assertEquals(nodes, service.getNodes());
+        assertEquals(metadata, service.getMetadata());
+    }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 14384fc..3de6290 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -44,7 +44,7 @@
         <jakarta.ws.rs.version>3.1.0</jakarta.ws.rs.version>
         <slf4j.version>1.7.25</slf4j.version>
         <jacoco.version>0.8.5</jacoco.version>
-        <jackson.version>2.13.3</jackson.version>
+        <jackson.version>2.15.2</jackson.version>
 
         <jacoco.version>0.8.5</jacoco.version>
         <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
                 <artifactId>javax.servlet-api</artifactId>
                 <version>4.0.1</version>
             </dependency>
-            <dependency>
-                <groupId>org.onap.msb.java-sdk</groupId>
-                <artifactId>msb-java-sdk</artifactId>
-                <version>1.2.5</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>com.fasterxml.jackson.core</groupId>
-                        <artifactId>jackson-databind</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
             <dependency>
                 <groupId>org.glassfish.jersey.containers</groupId>
                 <artifactId>jersey-container-servlet-core</artifactId>
                 <artifactId>jakarta.ws.rs-api</artifactId>
                 <version>${jakarta.ws.rs.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-annotations</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-databind</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>3.13.0</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>