Ben Weidig created TAP5-2806:
--------------------------------
Summary: Upgrade Antlr 3 to 4
Key: TAP5-2806
URL: https://issues.apache.org/jira/browse/TAP5-2806
Project: Tapestry 5
Issue Type: Improvement
Components: beanmodel
Reporter: Ben Weidig
Currently, Antlr 3.5.2 is used by beanmodel.
While there is no immediate pressure to upgrade or obvious security
implications, migrating to 4 would provide long-term benefits for the project.
h2. Rationale
* {*}Improved architecture{*}: Antlr 4 was a rewrite of the platform. Even
though 3 still has a large user base, 4 was released in 2013, is a more modern
and maintainable approach. Over time, resources and knowledge regarding 3 will
diminish.
* {*}Performance{*}: 4 offers better parsing efficiency and memory usage. The
grammar syntax changes allow the simplification of certain constructs currently
present in the Tapestry grammar.
* {*}Continued Development{*}: While 3 is stable, since 3.5.2 in 2014, there's
been only a singular release, 3.5.3, in 2022, which mainly included project
management changes. 4 has seen frequent-ish releases over time, with the last
one being 4.13.2 in 2024.
* {*}Technical debt reduction{*}: Upgrading now as part of regular maintenance
would be less disruptive than being forced to upgrade under pressure due to a
future security advisory or compatibility issue.
h2. Proposed Approach
* Open up BeanModelSourceBuilder to make it easier to get a
PropertyConduitSource without the full IoC
* Create tests using the current Antlr 3 grammar to verify Tapestry behavior
* Upgrade to 4 and adapt our code as necessary
* Verify success through testing
--
This message was sent by Atlassian Jira
(v8.20.10#820010)