Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-3403

Migrate from JavaCC to ANTLR

    XMLWordPrintableJSON

Details

    Description

      Although JavaCC has been updated recently, there are quite some forks and development is quite erratic. The best maintained fork also has no presence in Maven Central yet. Worse (IMHO), it's Java only. This limits the use of the IDL format to Java and the Avro tools.

      As proposed on the mailling list last January, in the thread Maintaining the IDL in the 21st century, this improvement issue is to migrate the code to ANTLR.

      Related changes:

      1. Place the ANTLR grammar in a subdirectory in the toplevel share directory, so it can be reused for other languages than Java (note: the Grammar may not contain any actions/code).
      2. Ensure the IDL parsing API allows extending the IDL syntax to an .avsc equivalent.
      3. Add a new java/idl module with the new parser. Make it a dependency of the java/compiler module and use it instead of the old parser.
        Bonus: this allows us to (also) create a parser that yields a single protocol (at first) or schema (future change).
      4. Keep the old parser in the java/compiler module for backwards compatibility, mark it as deprecated and document its removal in a future version.

      Attachments

        Issue Links

          Activity

            People

              opwvhk Oscar Westra van Holthe - Kind
              opwvhk Oscar Westra van Holthe - Kind
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 20m
                  3h 20m