Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4.1
    • Fix Version/s: None
    • Component/s: spec
    • Labels:
      None
    • Release Note:
      -Cyclic reference support

      Description

      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

      1. avro-1.4.1-cycle.patch.gz
        43 kB
        Moustapha Cherri
      2. avro-1.4.1-cycle.patch.gz
        41 kB
        Moustapha Cherri

        Activity

          People

          • Assignee:
            Unassigned
            Reporter:
            Moustapha Cherri
          • Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:

              Time Tracking

              Estimated:
              Original Estimate - 672h
              672h
              Remaining:
              Remaining Estimate - 672h
              672h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development