aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahooinc.com>2022-08-15 09:51:28 +0200
committerGitHub <noreply@github.com>2022-08-15 09:51:28 +0200
commit5c15236363db05ce5d469c9f37ff39bb0127023f (patch)
treea6fc8505528cda31f15997459784d6768e0786c0
parent0a6f0236ea036f14e1210bdcd23ef719f27f091b (diff)
parentcd3ee3dbe7b6d04ba4c63846ddd12e8609eda415 (diff)
Merge pull request #23287 from vespa-engine/mortent/resource-schema-serializationv8.35.5
Serialize/deserialize using Objectmapper
-rw-r--r--vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/pig/VespaStorage.java25
1 files 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 extends Serializable> 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);
}
-
}