summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuangrong Fu <fu.guangrong@zte.com.cn>2023-09-04 19:03:50 +0800
committerGuangrong Fu <fu.guangrong@zte.com.cn>2023-09-04 19:03:50 +0800
commitade480b317fe7bcf9ce94ef34e6c42b71a0ea1a3 (patch)
treed2ec01803eeb34ffe88b2b665630bb9742a3f49e
parent86debb28ef983f8176da06258e8f09c8783cddc7 (diff)
Removed MSB Dependencies
Issue-ID: HOLMES-629 Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn> Change-Id: Ia74c8456822ba71f465a7142431327a884c50a70
-rw-r--r--holmes-actions/pom.xml34
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/MsbRegister.java (renamed from holmes-actions/src/main/java/org/onap/holmes/common/utils/MsbRegister.java)12
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/CustomDateSerializer.java35
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/KeyValuePair.java49
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfo.java71
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceInfo.java49
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Node.java97
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/NodeInfo.java80
-rw-r--r--holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Service.java121
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/MsbRegisterTest.java (renamed from holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java)15
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/CustomDateSerializerTest.java32
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/KeyValuePairTest.java43
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfoTest.java114
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceInfoTest.java64
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeInfoTest.java47
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeTest.java56
-rw-r--r--holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/ServiceTest.java59
-rw-r--r--pom.xml28
18 files changed, 962 insertions, 44 deletions
diff --git a/holmes-actions/pom.xml b/holmes-actions/pom.xml
index f132e80..01c7b8c 100644
--- a/holmes-actions/pom.xml
+++ b/holmes-actions/pom.xml
@@ -7,7 +7,7 @@
OR CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the License. -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.holmes.common</groupId>
@@ -20,25 +20,6 @@
<artifactId>holmes-actions</artifactId>
<dependencies>
<dependency>
- <groupId>org.onap.msb.java-sdk</groupId>
- <artifactId>msb-java-sdk</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>com.eclipsesource.jaxrs</groupId>
- <artifactId>jersey-all</artifactId>
- </exclusion>
- <exclusion>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
@@ -125,6 +106,19 @@
<artifactId>jakarta.ws.rs-api</artifactId>
<version>${jakarta.ws.rs.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.13.0</version>
+ </dependency>
</dependencies>
<build>
<resources>
diff --git a/holmes-actions/src/main/java/org/onap/holmes/common/utils/MsbRegister.java b/holmes-actions/src/main/java/org/onap/holmes/common/msb/MsbRegister.java
index 78ac59b..cc83ae5 100644
--- a/holmes-actions/src/main/java/org/onap/holmes/common/utils/MsbRegister.java
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/MsbRegister.java
@@ -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
index 0000000..4f6c012
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/CustomDateSerializer.java
@@ -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
index 0000000..d35b69e
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/KeyValuePair.java
@@ -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
index 0000000..644f814
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfo.java
@@ -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
index 0000000..16fd0b3
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/MicroServiceInfo.java
@@ -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
index 0000000..1e17a05
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Node.java
@@ -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
index 0000000..de2378d
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/NodeInfo.java
@@ -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
index 0000000..a852d24
--- /dev/null
+++ b/holmes-actions/src/main/java/org/onap/holmes/common/msb/entity/Service.java
@@ -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;
+ }
+}
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/msb/MsbRegisterTest.java
index 073fcc7..997d1cc 100644
--- a/holmes-actions/src/test/java/org/onap/holmes/common/utils/MsbRegisterTest.java
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/MsbRegisterTest.java
@@ -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.
@@ -14,23 +14,24 @@
* 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
index 0000000..fb105e8
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/CustomDateSerializerTest.java
@@ -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
index 0000000..9c1bad2
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/KeyValuePairTest.java
@@ -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
index 0000000..8e63b59
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceFullInfoTest.java
@@ -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
index 0000000..aa89f19
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/MicroServiceInfoTest.java
@@ -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
index 0000000..9458dcf
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeInfoTest.java
@@ -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
index 0000000..7555ad3
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/NodeTest.java
@@ -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
index 0000000..ac50841
--- /dev/null
+++ b/holmes-actions/src/test/java/org/onap/holmes/common/msb/entity/ServiceTest.java
@@ -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
--- 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>
@@ -91,17 +91,6 @@
<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>
<version>${jersey.version}</version>
@@ -167,6 +156,21 @@
<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>