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)

Reply via email to