Sachin Goyal created AVRO-1554:
----------------------------------

             Summary: Avro should have support for common constructs like UUID 
and Date
                 Key: AVRO-1554
                 URL: https://issues.apache.org/jira/browse/AVRO-1554
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.7.6
            Reporter: Sachin Goyal


Consider the following code:

{code}
public class AvroExample
{
    public static void main (String [] args) throws Exception
    {
        ReflectData rdata = ReflectData.AllowNull.get();
        Schema schema = rdata.getSchema(Temp.class);
        
        ReflectDatumWriter<Temp> datumWriter = 
               new ReflectDatumWriter (Temp.class, rdata);
        DataFileWriter<Temp> fileWriter = 
               new DataFileWriter<Temp> (datumWriter);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        fileWriter.create(schema, baos);
        fileWriter.append(new Temp());
        fileWriter.close();

        byte[] bytes = baos.toByteArray();
        GenericDatumReader<GenericRecord> datumReader = 
                new GenericDatumReader<GenericRecord> ();
        SeekableByteArrayInput avroInputStream = 
                new SeekableByteArrayInput(bytes);
        DataFileReader<GenericRecord> fileReader = 
                new DataFileReader<GenericRecord>(avroInputStream, datumReader);

        schema = fileReader.getSchema();
        GenericRecord record = null;
        record = fileReader.next(record);
        System.out.println (record);
        System.out.println (record.get("id"));
    }
}

class Temp
{
    UUID id = UUID.randomUUID();
    Date date = new Date();
    BigInteger bi = BigInteger.TEN;
}
{code}

Output from this code is:
{code:javascript}
{"id": {}, "date": {}, "bi": "10"}
{code}

UUID and Date type fields are very common in Java and can be found a lot in 
third-party code as well (where it may be difficult to put annotations).
So Avro should include a default serialization/deserialization support for such 
fields.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to