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

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

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

TAP5-2806: Accept every Java identifier character in property expressions

The lexer accepted a fixed list of UTF-16 ranges. It rejected Hangul,
'µ', '€' and supplementary characters, and accepted characters that
are no Java identifier part, like U+1680. Identifiers are now scanned
by code point with Character.isJavaIdentifierStart/Part, and
identifier-ignorable characters stay rejected. Keywords still match
ASCII letters only, so 'thıs' remains an identifier.

The parser imports the lexer's token types, but generateGrammarSource
regenerated only the changed grammar. A change to the lexer left the
parser with stale token types, and the build cache kept that output.
Every grammar change now regenerates both.


> 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