From cd3ee3dbe7b6d04ba4c63846ddd12e8609eda415 Mon Sep 17 00:00:00 2001 From: Morten Tokle Date: Thu, 30 Jun 2022 12:32:16 +0200 Subject: Serialize/deserialize using Objectmapper --- .../com/yahoo/vespa/hadoop/pig/VespaStorage.java | 25 ++++++---------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/pig/VespaStorage.java b/vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/pig/VespaStorage.java index 96a95351bb5..a564dfac25d 100644 --- a/vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/pig/VespaStorage.java +++ b/vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/pig/VespaStorage.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hadoop.pig; +import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.vespa.hadoop.mapreduce.VespaOutputFormat; import com.yahoo.vespa.hadoop.mapreduce.util.TupleTools; import com.yahoo.vespa.hadoop.mapreduce.util.VespaConfiguration; @@ -165,27 +166,13 @@ public class VespaStorage extends StoreFunc { return VespaDocumentOperation.create(operation, docId, fields, properties, schema); } - - public static String base64Serialize(Object o) throws IOException { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try (ObjectOutputStream oos = new ObjectOutputStream(baos)) { - oos.writeObject(o); - } - return Base64.getEncoder().encodeToString(baos.toByteArray()); + public static String base64Serialize(ResourceSchema resourceSchema) throws IOException { + byte[] bytes = new ObjectMapper().writeValueAsBytes(resourceSchema); + return Base64.getEncoder().encodeToString(bytes); } - - @SuppressWarnings("unchecked") - public static T base64Deserialize(String s) throws IOException { - Object ret; + public static ResourceSchema base64Deserialize(String s) throws IOException { byte[] data = Base64.getDecoder().decode(s); - ByteArrayInputStream bais = new ByteArrayInputStream(data); - try (ObjectInputStream ois = new ObjectInputStream(bais)) { - ret = ois.readObject(); - } catch (ClassNotFoundException e) { - throw new IOException(e); - } - return (T) ret; + return new ObjectMapper().readValue(data, ResourceSchema.class); } - } -- cgit v1.2.3