use of org.apache.avro.generic.GenericData.Record in project voldemort by voldemort.
the class AvroGenericSerializerTest method testRoundtripAvroWithGenericRecord.
public void testRoundtripAvroWithGenericRecord() throws Exception {
String jsonSchema = "{\"name\": \"Compact Disk\", \"type\": \"record\", " + "\"fields\": [" + "{\"name\": \"name\", \"type\": \"string\", \"order\": \"ascending\"}" + "]}";
AvroGenericSerializer serializer = new AvroGenericSerializer(jsonSchema);
Record record = new Record(Schema.parse(jsonSchema));
// we need to use a Utf8 instance to map to a String.
record.put("name", new Utf8("Hello"));
byte[] bytes = serializer.toBytes(record);
assertTrue(serializer.toObject(bytes).equals(record));
}
use of org.apache.avro.generic.GenericData.Record in project voldemort by voldemort.
the class AvroBackwardsCompatibilityTest method testAvroSchemaEvolution.
/*
* This tests if a client tries to deserialize an object created using an
* old schema is successful or not
*/
@Test
public void testAvroSchemaEvolution() throws IOException {
String versionZero = "{\"type\": \"record\", \"name\": \"myrec\",\"fields\": [{ \"name\": \"original\", \"type\": \"string\" }]}";
String versionOne = "{\"type\": \"record\", \"name\": \"myrec\",\"fields\": [{ \"name\": \"original\", \"type\": \"string\" } ," + "{ \"name\": \"new-field\", \"type\": \"string\", \"default\":\"\" }]}";
Schema s0 = Schema.parse(versionZero);
Schema s1 = Schema.parse(versionOne);
Map<Integer, String> versions = new HashMap<Integer, String>();
versions.put(0, versionZero);
versions.put(1, versionOne);
byte[] versionZeroBytes = writeVersion0(s0);
GenericData.Record record = (Record) readVersion0(versions, versionZeroBytes);
}
use of org.apache.avro.generic.GenericData.Record in project voldemort by voldemort.
the class AvroBackwardsCompatibilityTest method writeVersion0.
private static byte[] writeVersion0(Schema s0) {
GenericData.Record record = new GenericData.Record(s0);
record.put("original", new Utf8("Abhinay"));
AvroVersionedGenericSerializer serializer = new AvroVersionedGenericSerializer(s0.toString());
return serializer.toBytes(record);
}
Aggregations