[ 
https://issues.apache.org/jira/browse/TAP5-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18131857#comment-18131857
 ] 

ASF subversion and git services commented on TAP5-2806:
-------------------------------------------------------

Commit ea7095720414ea9e3bf7fd1a8d040e0cc49ed049 in tapestry-5's branch 
refs/heads/property-expression-parser from Ben Weidig
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=ea7095720 ]

TAP5-2806: Parse property expressions independent of the default charset

Expressions went through getBytes() and back with the platform default
charset. On a JVM without a UTF-8 default, every non-ASCII character
turned into '?' before the lexer saw it.

The lexer now reads the String directly.

The expected node types in two code generator errors now include MAP,
which both switches already handle.


> 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
>            Assignee: Ben Weidig
>            Priority: Minor
>
> 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
(v10.3.26#10030026)

Reply via email to