[jira] [Updated] (AVRO-695) Cycle Reference Support

2016-02-03 Thread Ryan Blue (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Blue updated AVRO-695:
---
   Resolution: Fixed
 Assignee: Ryan Blue
Fix Version/s: 1.8.0
   Status: Resolved  (was: Patch Available)

Closing this since it is available using logical types and is used as a [test 
case|https://github.com/apache/avro/blob/trunk/lang/java/avro/src/test/java/org/apache/avro/TestCircularReferences.java].

> 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
>Assignee: Ryan Blue
> Fix For: 1.8.0
>
> 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)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2015-01-21 Thread Sachin Goyal (JIRA)

 [ 
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)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-10-02 Thread Doug Cutting (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Doug Cutting updated AVRO-695:
--
Attachment: AVRO-695.patch

Here's a modified version of the patch.  It moves all significant changes to 
reflect.  Since reflect is the only implementation that can generate an 
appropriate schema, changes should be confined to there.

The tests need to be updated, as they still assume generic.


> 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, 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)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-09-01 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--
Attachment: avro_circular_refs7.patch
PERF_8000_cycles.zip

avro_circular_refs7.patch fixes the above.

Performance has been checked by running Perf.java for 8k cycles 
(PERF_8000_cycles.zip contains a small Tcl utility to compare two outputs of 
Perf.java)
{code}
% tclsh perf_processor.tcl all/orig.txt all/circular.txt
Finding tests where time is 1.05 times more than the original
   orig.txtcircular.txt
GenericWrite:  34552 ms 37010 ms
ReflectNestedObjectArrayWrite: 51701 ms 54562 ms
LongRead:  12508 ms 16907 ms

% tclsh perf_processor.tcl reduced/orig.txt reduced/circular.txt
Finding tests where time is 1.05 times more than the original
orig.txt  circular.txt
GenericWrite: 33359 ms   35552 ms

% tclsh perf_processor.tcl reduced_further/orig.txt reduced_further/circular.txt
Finding tests where time is 1.05 times more than the original
{code}
So the Perf.java shows irregular performance degradation and that too varies 
only in small numbers.

> 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: 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)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-08-21 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--

Attachment: avro_circular_refs6.patch

avro_circular_refs6.patch is created using
{code}
lang/java/avro% svn diff src/
{code}
It eliminates the need to add an extra field per record and relies on the order 
of record-writing and reading.

In this patch, there is an equals check at 3 places of the form:
{code}
schema.getFullName().equals(CircularRef.class.getName())
{code}
I think this could be improved by adding a boolean-property in the schema for 
CircularRef or somehow comparing the class.
Comments are welcome.

> 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-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz, 
> avro_circular_references.zip, avro_circular_refs6.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.2#6252)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-06-25 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--

Attachment: circular_refs_and_nonstring_map_keys_2014_06_25.zip

> 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-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz, 
> avro_circular_references.zip, 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.2#6252)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-06-14 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--

Attachment: avro_circular_refs_2014_06_14.zip

[~cutting], excellent suggestion.
I have made the suggested changes in the new patch:

1) If {code}ReflectData.setCircularRefIdPrefix("some-field-name"){code} is set, 
Avro converts each RECORD schema into a UNION schema such that it can either be 
a record or a string. This should make circular references readable by other 
implementations of Avro like c, c++, php, ruby etc.
(AllowNull also works with this).

2) Added some thread-safe constructs like ThreadLocal for hash-maps used in 
circular reference code.

3) Enhanced the test-case (with detailed comments) to test regular 
deserialization and circular deserialization for a circular-ref serialized Avro.

> 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-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz, 
> avro_circular_references.zip, avro_circular_refs_2014_06_14.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.2#6252)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-06-12 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--

Attachment: avro_circular_references.zip

Avro-Circular-References-1.7.6

> 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-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz, 
> avro_circular_references.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.2#6252)


[jira] [Updated] (AVRO-695) Cycle Reference Support

2014-06-12 Thread Sachin Goyal (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sachin Goyal updated AVRO-695:
--

Affects Version/s: (was: 1.4.1)
   1.7.6
   Status: Patch Available  (was: Open)

Support for circular references without modifying the grammar.
[~cutting], this patch takes above recommendations into account.

Example of a simple circular reference (very common in Java and Hibernate 
world):
---
class Parent
{
  String name;
  Child child;
};

class Child
{
  Parent parent;
  String city;
};
---
Without this fix, Avro correctly generates schema for the above but fails with 
StackOverflow error when trying to serialize actual objects with circular 
reference.

This fix requires following steps for using it:
1) Allow clients to choose name of the extra-field which every entity can use 
to store its ID.
ReflectData rdata = ReflectData.AllowNull.get();
rdata.setCircularRefIdPrefix("__crefId");

2) One must pass the same rdata when serializing objects.
DatumWriter datumWriter = new ReflectDatumWriter (T.class, rdata);

3) MUST use the same field-name when reading circular-reference objects.
GenericDatumReader datumReader = new 
GenericDatumReader ();
GenericData gdata = datumReader.getData();
gdata.setCircularRefIdPrefix("__crefId");
  If field-name is different, there may be no error but circular references 
will not be resolved.

4) Choose if the circular references should be fully resolved or not.
datumReader.setResolveCircularRefs (false);
   If this is set to true, circular references will point to actual objects 
forming a cycle.
   If this is set to false, circular references will point to dummy objects 
having only the circular-reference-ID. This option allows Avro to work 
everywhere else without running into infinite loops (like 
GenericRecord.toString()) while providing users enough information to
   form true circular references themselves if required.

Test-case provided for circular references in List and Maps as well.
Happy to make modifications if any.

> 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-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz
>
>   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.2#6252)


[jira] Updated: (AVRO-695) Cycle Reference Support

2011-02-21 Thread Doug Cutting (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Doug Cutting updated AVRO-695:
--

Fix Version/s: (was: 1.5.0)
   1.6.0

> 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.4.1
>Reporter: Moustapha Cherri
> Fix For: 1.6.0
>
> Attachments: avro-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz
>
>   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 is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (AVRO-695) Cycle Reference Support

2011-01-04 Thread Moustapha Cherri (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Moustapha Cherri updated AVRO-695:
--

Attachment: avro-1.4.1-cycle.patch.gz

Dear Xiaolu,

Please find the fix to the issue you mentioned. I fixed more issues related to 
GenericDatumReader too.

Thanks for your reply and interest in this.

Best regards,
Moustapha Cherri

> 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.4.1
>Reporter: Moustapha Cherri
> Fix For: 1.5.0
>
> Attachments: avro-1.4.1-cycle.patch.gz, avro-1.4.1-cycle.patch.gz
>
>   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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (AVRO-695) Cycle Reference Support

2010-11-15 Thread Moustapha Cherri (JIRA)

 [ 
https://issues.apache.org/jira/browse/AVRO-695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Moustapha Cherri updated AVRO-695:
--

Attachment: avro-1.4.1-cycle.patch.gz

implementation patch from version 1.4.1

> 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.4.1
>Reporter: Moustapha Cherri
> Fix For: 1.5.0
>
> Attachments: avro-1.4.1-cycle.patch.gz
>
>   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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.