diff options
author | Harald Musum <musum@yahooinc.com> | 2022-10-17 08:39:53 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-10-17 08:40:46 +0200 |
commit | 08d13bef3a30a49c280421cf6688bc80989eb349 (patch) | |
tree | 8acac9a68faff892d4df1f2d2573cd7d7eca7bd0 /container-search | |
parent | 682be49b09b9b5d2585c79f62d75305daa8054bd (diff) |
Rename to serialize and deserialize, use Slime everywhere
Diffstat (limited to 'container-search')
3 files changed, 16 insertions, 26 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/logging/LocalDiskLogger.java b/container-search/src/main/java/com/yahoo/search/logging/LocalDiskLogger.java index f5d8c31be5d..7602b9d53e7 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/LocalDiskLogger.java +++ b/container-search/src/main/java/com/yahoo/search/logging/LocalDiskLogger.java @@ -15,7 +15,7 @@ public class LocalDiskLogger extends AbstractThreadedLogger { @Override boolean transport(LoggerEntry entry) { - String json = entry.toJson(); + String json = entry.serialize(); try (FileWriter fw = new FileWriter(logFilePath, true)) { fw.write(json); fw.write(System.getProperty("line.separator")); diff --git a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java index 69f37226dae..e02bb8da8c0 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java +++ b/container-search/src/main/java/com/yahoo/search/logging/LoggerEntry.java @@ -2,14 +2,11 @@ package com.yahoo.search.logging; -import com.fasterxml.jackson.core.JsonEncoding; -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonGenerator; import com.yahoo.search.Query; -import com.yahoo.slime.JsonDecoder; +import com.yahoo.slime.Cursor; import com.yahoo.slime.Slime; +import com.yahoo.slime.SlimeUtils; import com.yahoo.text.Utf8; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.ByteBuffer; @@ -53,33 +50,26 @@ public class LoggerEntry { } public String toString() { - return toJson(); + return serialize(); } - public String toJson() { + public String serialize() { try { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - JsonGenerator g = new JsonFactory().createGenerator(out, JsonEncoding.UTF8); - g.writeStartObject(); + Slime slime = new Slime(); + Cursor root = slime.setObject(); - g.writeNumberField("timestamp", timestamp == null ? 0 : timestamp); - g.writeStringField("query", queryString()); - g.writeStringField("blob", Base64.getEncoder().encodeToString(blob.array())); - - g.writeEndObject(); - g.close(); - return out.toString(); + root.setLong("timestamp", timestamp == null ? 0 : timestamp); + root.setString("query", queryString()); + root.setString("blob", Base64.getEncoder().encodeToString(blob.array())); + return Utf8.toString(SlimeUtils.toJsonBytes(slime)); // TODO } catch (IOException e) { throw new UncheckedIOException(e); } } - // TODO: Rename method here and above? (serialize/deserialize) - // TODO: Use Slime or Jackson for both - public static LoggerEntry fromJson(String content) throws IOException { - var decoder = new JsonDecoder(); - var slime = decoder.decode(new Slime(), Utf8.toBytes(content)); + public static LoggerEntry deserialize(String content) throws IOException { + var slime = SlimeUtils.jsonToSlime(content); var timestamp = slime.get().field("timestamp").asLong(); var query = new Query(slime.get().field("query").asString()); diff --git a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java index 5533320c907..2193d414458 100644 --- a/container-search/src/main/java/com/yahoo/search/logging/Spooler.java +++ b/container-search/src/main/java/com/yahoo/search/logging/Spooler.java @@ -89,7 +89,7 @@ public class Spooler { try { List<String> lines = Files.readAllLines(f.toPath()); for (String line : lines) { - LoggerEntry entry = LoggerEntry.fromJson(line); + LoggerEntry entry = LoggerEntry.deserialize(line); log.log(Level.FINE, "Read entry " + entry + " from " + f); succcess = transport.apply(entry); if (! succcess) { @@ -142,8 +142,8 @@ public class Spooler { String fileName = String.valueOf(fileCounter); Path file = spoolPath.resolve(processingPath).resolve(fileName); try { - log.log(Level.INFO, "Writing entry " + entryCounter.get() + " (" + entry.toJson() + ") to " + fileName); - Files.writeString(file, entry.toJson() + "\n", StandardOpenOption.WRITE, StandardOpenOption.APPEND, StandardOpenOption.CREATE); + log.log(Level.FINE, "Writing entry " + entryCounter.get() + " (" + entry.serialize() + ") to file " + fileName); + Files.writeString(file, entry.serialize() + "\n", StandardOpenOption.WRITE, StandardOpenOption.APPEND, StandardOpenOption.CREATE); Path target = spoolPath.resolve(readyPath).resolve(file.relativize(file)).resolve(fileName); if (entryCounter.incrementAndGet() > maxEntriesPerFile) { |