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)