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
* 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.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;
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);
--- /dev/null
+/**
+ * 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));
+ }
+}
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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();
+ }
+}
--- /dev/null
+/**
+ * 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();
+ }
+}
--- /dev/null
+/**
+ * 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;
+ }
+}
+
--- /dev/null
+/**
+ * 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;
+ }
+}
--- /dev/null
+/**
+ * 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;
+ }
+}
/**
- * 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;
--- /dev/null
+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
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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
--- /dev/null
+/**
+ * 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
<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>