[ https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sachin Goyal updated AVRO-695: ------------------------------ Attachment: AVRO-695.patch Here is a patch with the updated test-cases. I also confirm that all my changes are there in the patch. > Cycle Reference Support > ----------------------- > > Key: AVRO-695 > URL: https://issues.apache.org/jira/browse/AVRO-695 > Project: Avro > Issue Type: New Feature > Components: spec > Affects Versions: 1.7.6 > Reporter: Moustapha Cherri > Attachments: AVRO-695.patch, AVRO-695.patch, PERF_8000_cycles.zip, > avro-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz, > avro_circular_references.zip, avro_circular_refs6.patch, > avro_circular_refs7.patch, avro_circular_refs_2014_06_14.zip, > circular_refs_and_nonstring_map_keys_2014_06_25.zip > > Original Estimate: 672h > Remaining Estimate: 672h > > This is a proposed implementation to add cycle reference support to Avro. It > basically introduce a new type named Cycle. Cycles contains a string > representing the path to the other reference. > For example if we have an object of type Message that have a member named > previous with type Message too. If we have have this hierarchy: > message > previous : message2 > message2 > previous : message2 > When serializing the cycle path for "message2.previous" will be "previous". > The implementation depend on ANTLR to evaluate those cycle at read time to > resolve them. I used ANTLR 3.2. This dependency is not mandated; I just used > ANTLR to speed thing up. I kept in this implementation the generated code > from ANTLR though this should not be the case as this should be generated > during the build. I only updated the Java code. > I did not make full unit testing but you can find "avrotest.Main" class that > can be used a preliminary test. > Please do not hesitate to contact me for further clarification if this seems > interresting. > Best regards, > Moustapha Cherri -- This message was sent by Atlassian JIRA (v6.3.4#6332)