diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-08-21 11:23:13 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-08-21 11:23:13 +0200 |
commit | c61dae7c6ac4b5c578414c7483442a6786f3e2ed (patch) | |
tree | 70a8b01dcae767144c7138cdae9230970c3e1c8d /configserver | |
parent | c9ccef5b417962c47135d4a4902d2349f0cfbec6 (diff) |
Use SlimeUtils in more places
Diffstat (limited to 'configserver')
5 files changed, 13 insertions, 24 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index bf2fdbf03ef..d8ef10b150f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -378,8 +378,8 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye return transaction; } - private String createMetaData(Tenant tenant) { - return new TenantMetaData(tenant.getSessionRepository().clock().instant()).asJsonString(); + private byte[] createMetaData(Tenant tenant) { + return new TenantMetaData(tenant.getSessionRepository().clock().instant()).asJsonBytes(); } TenantMetaData getTenantMetaData(Tenant tenant) { @@ -388,10 +388,9 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye } private Transaction writeTenantMetaData(Tenant tenant) { - String jsonString = createMetaData(tenant); return new CuratorTransaction(tenantRepository.getCurator()) .add(CuratorOperations.setData(TenantRepository.getTenantPath(tenant.getName()).getAbsolute(), - Utf8.toBytes(jsonString))); + createMetaData(tenant))); } static void checkIfActiveHasChanged(LocalSession session, Session currentActiveSession, boolean ignoreStaleSessionFailure) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java index c634d82010e..858a2c84e02 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java @@ -275,7 +275,7 @@ public class ZooKeeperClient { * @param metaData The application metadata. */ private void write(ApplicationMetaData metaData) { - configCurator.putData(getZooKeeperAppPath(ConfigCurator.META_ZK_PATH).getAbsolute(), metaData.asJsonString()); + configCurator.putData(getZooKeeperAppPath(ConfigCurator.META_ZK_PATH).getAbsolute(), metaData.asJsonBytes()); } void cleanupZooKeeper() { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantMetaData.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantMetaData.java index 47a3dcc8ee0..24862b82fb0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantMetaData.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantMetaData.java @@ -3,14 +3,10 @@ package com.yahoo.vespa.config.server.tenant; import com.yahoo.slime.Cursor; import com.yahoo.slime.Inspector; -import com.yahoo.slime.JsonDecoder; -import com.yahoo.slime.JsonFormat; import com.yahoo.slime.Slime; -import com.yahoo.text.Utf8; +import com.yahoo.slime.SlimeUtils; -import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.time.Instant; /** @@ -31,12 +27,9 @@ public class TenantMetaData { return lastDeployTimestamp; } - public String asJsonString() { - Slime slime = getSlime(); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); + public byte[] asJsonBytes() { try { - new JsonFormat(false).encode(baos, slime); - return baos.toString(StandardCharsets.UTF_8); + return SlimeUtils.toJsonBytes(getSlime()); } catch (IOException e) { throw new RuntimeException("Unable to encode metadata", e); } @@ -44,8 +37,7 @@ public class TenantMetaData { public static TenantMetaData fromJsonString(String jsonString) { try { - Slime data = new Slime(); - new JsonDecoder().decode(data, Utf8.toBytes(jsonString)); + Slime data = SlimeUtils.jsonToSlime(jsonString); Inspector root = data.get(); Inspector lastDeployTimestamp = root.field("lastDeployTimestamp"); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java index d614031c443..ab161feb519 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpHandlerTest.java @@ -4,8 +4,8 @@ package com.yahoo.vespa.config.server.http; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.Response; -import com.yahoo.slime.JsonDecoder; import com.yahoo.slime.Slime; +import com.yahoo.slime.SlimeUtils; import org.junit.Test; import java.io.ByteArrayOutputStream; @@ -21,6 +21,7 @@ import static org.junit.Assert.assertThat; * @author Ulf Lilleengen */ public class HttpHandlerTest { + @Test public void testResponse() throws IOException { final String message = "failed"; @@ -29,8 +30,7 @@ public class HttpHandlerTest { assertThat(response.getStatus(), is(Response.Status.BAD_REQUEST)); ByteArrayOutputStream baos = new ByteArrayOutputStream(); response.render(baos); - Slime data = new Slime(); - new JsonDecoder().decode(data, baos.toByteArray()); + Slime data = SlimeUtils.jsonToSlime(baos.toByteArray()); assertThat(data.get().field("error-code").asString(), is(HttpErrorResponse.errorCodes.INVALID_APPLICATION_PACKAGE.name())); assertThat(data.get().field("message").asString(), is(message)); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index b78d8d3e525..2f591ece8c4 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -12,8 +12,8 @@ import com.yahoo.config.provision.OutOfCapacityException; import com.yahoo.config.provision.TenantName; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.jdisc.http.HttpRequest; -import com.yahoo.slime.JsonDecoder; import com.yahoo.slime.Slime; +import com.yahoo.slime.SlimeUtils; import com.yahoo.vespa.config.server.ApplicationRepository; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; @@ -285,9 +285,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { private Slime getData(HttpResponse response) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); response.render(baos); - Slime data = new Slime(); - new JsonDecoder().decode(data, baos.toByteArray()); - return data; + return SlimeUtils.jsonToSlime(baos.toByteArray()); } private static void assertResponseContains(HttpResponse response, String string) throws IOException { |