diff options
author | jonmv <venstad@gmail.com> | 2022-10-21 16:55:26 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-10-21 16:55:26 +0200 |
commit | 49bc9f5bcc05852954833f1c3c74dfa54e382fcb (patch) | |
tree | a64a32f730c2ddf9c010d3eba74859666ac6adf5 /clustercontroller-core | |
parent | 064490e91198ebb77102e3d6e3d649596c843c4c (diff) |
Replace jettison with jackson
Diffstat (limited to 'clustercontroller-core')
4 files changed, 97 insertions, 102 deletions
diff --git a/clustercontroller-core/pom.xml b/clustercontroller-core/pom.xml index dbd7e14a8f6..b4ac5ca869c 100644 --- a/clustercontroller-core/pom.xml +++ b/clustercontroller-core/pom.xml @@ -64,10 +64,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.codehaus.jettison</groupId> - <artifactId>jettison</artifactId> - </dependency> - <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <scope>provided</scope> diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java index b4bd75fd9b8..cfe4c925551 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/Response.java @@ -74,7 +74,7 @@ public class Response { { protected final Map<String, String> attributes = new LinkedHashMap<>(); protected final Map<String, SubUnitList> subUnits = new LinkedHashMap<>(); - protected final Map<String, Number> metrics = new LinkedHashMap<>(); + protected final Map<String, Long> metrics = new LinkedHashMap<>(); protected final Map<String, UnitState> stateMap = new LinkedHashMap<>(); protected DistributionState publishedState = null; @@ -92,7 +92,7 @@ public class Response { } @Override - public Map<String, Number> getMetricMap() { return metrics; } + public Map<String, Long> getMetricMap() { return metrics; } @Override public Map<String, UnitState> getStatePerType() { return stateMap; } @Override @@ -120,7 +120,7 @@ public class Response { list.addUnit(unit, response); return this; } - public EmptyResponse<T> addMetric(String name, Number value) { + public EmptyResponse<T> addMetric(String name, Long value) { metrics.put(name, value); return this; } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java index d43a3e13c6a..31432d561d0 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendererTest.java @@ -1,22 +1,22 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Sets; import com.yahoo.vdslib.state.ClusterState; import com.yahoo.vespa.clustercontroller.core.hostinfo.HostInfo; import com.yahoo.vespa.clustercontroller.core.status.statuspage.VdsClusterHtmlRenderer; -import org.codehaus.jettison.json.JSONException; -import org.codehaus.jettison.json.JSONWriter; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.io.IOException; import java.io.StringWriter; import java.io.Writer; import java.util.Collections; +import java.util.Map; import java.util.TreeMap; -import static org.hamcrest.core.Is.is; -import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; public class ContentClusterHtmlRendererTest { @@ -28,7 +28,7 @@ public class ContentClusterHtmlRendererTest { private String result; @BeforeEach - public void before() throws JSONException { + public void before() throws IOException { final ClusterStateBundle stateBundle = ClusterStateBundle.ofBaselineOnly( AnnotatedClusterState.withoutAnnotations( ClusterState.stateFromString("version:34633 bits:24 distributor:211 storage:211"))); @@ -40,14 +40,8 @@ public class ContentClusterHtmlRendererTest { for (int x = 0; x < 10; x++) { NodeInfo nodeInfo = new DistributorNodeInfo(contentCluster, x, "dist " + x, null); - final Writer writer = new StringWriter(); - new JSONWriter(writer) - .object().key("vtag") - // Let one node have a different release tag. - .object().key("version").value("release1" + (x == 2 ? "bad" : "")) - .endObject() - .endObject(); - nodeInfo.setHostInfo(HostInfo.createHostInfo(writer.toString())); + String json = new ObjectMapper().writeValueAsString(Map.of("vtag", Map.of("version", "release1" + (x == 2 ? "bad" : "")))); + nodeInfo.setHostInfo(HostInfo.createHostInfo(json)); distributorNodeInfoByIndex.put(x, nodeInfo); } storageNodeInfoByIndex.put(2, new StorageNodeInfo(contentCluster, 2, false, "storage" + 2, null)); @@ -73,10 +67,11 @@ public class ContentClusterHtmlRendererTest { @Test void testVtagRendering() { // 9 distribution nodes should have green tag on release1. - assertThat(result.split("<td bgcolor=\"#c0ffc0\" align=\"right\"><nobr>release1</nobr></td>").length, is(10)); + assertEquals(10, result.split("<td bgcolor=\"#c0ffc0\" align=\"right\"><nobr>release1</nobr></td>").length); // 1 distribution node should have warning on release1bad. - assertThat(result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>release1bad</nobr></td>").length, is(2)); + assertEquals(2, result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>release1bad</nobr></td>").length); // 1 storage node should should have warning on release "not set". - assertThat(result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>not set</nobr></td>").length, is(2)); + assertEquals(2, result.split("<td bgcolor=\"#ffffc0\" align=\"right\"><nobr>not set</nobr></td>").length); } + } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java index 52c46215e50..39a2e22f6c5 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/restapiv2/NodeTest.java @@ -7,7 +7,6 @@ import com.yahoo.vdslib.state.NodeType; import com.yahoo.vdslib.state.State; import com.yahoo.vespa.clustercontroller.core.ContentCluster; import com.yahoo.vespa.clustercontroller.utils.staterestapi.response.UnitResponse; -import org.codehaus.jettison.json.JSONObject; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -19,23 +18,24 @@ public class NodeTest extends StateRestApiTest { setUp(true); UnitResponse response = restAPI.getState(new StateRequest("music/distributor/1", 0)); String expected = - "{\n" + - " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" + - " \"state\": {\n" + - " \"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"unit\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"user\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }\n" + - " }\n" + - "}"; + """ + { + "attributes": {"hierarchical-group": "east.g2"}, + "state": { + "generated": { + "state": "up", + "reason": "" + }, + "unit": { + "state": "up", + "reason": "" + }, + "user": { + "state": "up", + "reason": "" + } + } + }"""; assertEquals(expected, jsonWriter.createJson(response).toString(2)); } @@ -44,28 +44,29 @@ public class NodeTest extends StateRestApiTest { setUp(true); UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 0)); String expected = - "{\n" + - " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" + - " \"state\": {\n" + - " \"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"unit\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"user\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }\n" + - " },\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - "}"; + """ + { + "attributes": {"hierarchical-group": "east.g2"}, + "state": { + "generated": { + "state": "up", + "reason": "" + }, + "unit": { + "state": "up", + "reason": "" + }, + "user": { + "state": "up", + "reason": "" + } + }, + "metrics": { + "bucket-count": 1, + "unique-document-count": 2, + "unique-document-total-size": 3 + } + }"""; assertEquals(expected, jsonWriter.createJson(response).toString(2)); } @@ -74,28 +75,29 @@ public class NodeTest extends StateRestApiTest { setUp(true); UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 1)); String expected = - "{\n" + - " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" + - " \"state\": {\n" + - " \"generated\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"unit\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " },\n" + - " \"user\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }\n" + - " },\n" + - " \"metrics\": {\n" + - " \"bucket-count\": 1,\n" + - " \"unique-document-count\": 2,\n" + - " \"unique-document-total-size\": 3\n" + - " }\n" + - "}"; + """ + { + "attributes": {"hierarchical-group": "east.g2"}, + "state": { + "generated": { + "state": "up", + "reason": "" + }, + "unit": { + "state": "up", + "reason": "" + }, + "user": { + "state": "up", + "reason": "" + } + }, + "metrics": { + "bucket-count": 1, + "unique-document-count": 2, + "unique-document-total-size": 3 + } + }"""; assertEquals(expected, jsonWriter.createJson(response).toString(2)); } @@ -109,23 +111,25 @@ public class NodeTest extends StateRestApiTest { music.context.currentConsolidatedState.setNodeState(new Node(NodeType.STORAGE, 1), currentState); UnitResponse response = restAPI.getState(new StateRequest("music/storage/1", 0)); String expected = - "{\n" + - " \"attributes\": {\"hierarchical-group\": \"east.g2\"},\n" + - " \"state\": {\n" + - " \"generated\": {\n" + - " \"state\": \"down\",\n" + - " \"reason\": \"Not seen\"\n" + - " },\n" + - " \"unit\": {\n" + - " \"state\": \"down\",\n" + - " \"reason\": \"Node not seen in slobrok.\"\n" + - " },\n" + - " \"user\": {\n" + - " \"state\": \"up\",\n" + - " \"reason\": \"\"\n" + - " }\n" + - " }\n" + - "}"; + """ + { + "attributes": {"hierarchical-group": "east.g2"}, + "state": { + "generated": { + "state": "down", + "reason": "Not seen" + }, + "unit": { + "state": "down", + "reason": "Node not seen in slobrok." + }, + "user": { + "state": "up", + "reason": "" + } + } + }"""; assertEquals(expected, jsonWriter.createJson(response).toString(2)); } + } |