Re: Velocity Engine v3 ${foo.bar}
Greg Huber <[email protected]> Mon, 22 Jun 2026 08:17:11 +0100
| Newsgroups | gmane.comp.jakarta.velocity.devel |
|---|---|
| Message-ID | <[email protected]> |
Claude,
Thanks, so basically we would need to use the formal notation on every
statement in v3. Shorthand notation depricated.
https://velocity.apache.org/engine/2.4.1/vtl-reference.html#variables
ie
v2.5
$utils.formatDate($utils.now, $text.get("date.toStringFormat"))
v3
${utils.formatDate(${utils.now}, ${text.get("date.toStringFormat")})}
A migration tool would be great.
Greg
On 16/06/2026 10:42, Claude Brisson wrote:
> Hi Greg.
>
> The 2.x branch will never require the change. At most, in 2.x, the
> warning will become true by default and you will have to turn it off.
> We don't plan to retire the 2.x branch. Velocity Engine 3.0 may be a
> bit of a different beast, but you can stick to 2.x.
>
> I'm pretty sure that we can provide some templates migration tooling
> for those wanting to update to 3.0 when it is released, though.
>
> I realize that a lot of the discussions happened among PMCs on
> [email protected] or is scattered in comments on github and
> jira, so let me take the opportunity of this mail to try to present
> the direction in which I'd like to go:
>
> - after engine 2.5 is released, we'll release two concurrent versions
> of velocity-tools: 3.2 and 4.0. Tools 4.0 will use the jakarta J2EE
> instead of javax, and provide Spring 6/7 mvc support, but they should
> be similar. Both the 3.x and 4.x branches will be maintained.
>
> - engine 3.0 (/if/ it goes as planned) will use kotlin multiplatform,
> the antlr parser, the gradle build system, and a VTL syntax which can
> not incorporate $foo.bar because its syntax has to be a super-set of
> the kotlin string template syntax.
>
> Well, at least, that's my proposal. The "if" is the transition from
> javacc to antlr, which I have to technically validate (but I don't see
> why it couldn't be done).
>
> Claude B
>
> On 16/06/2026 09.29, Greg Huber wrote:
>> Hello,
>>
>> Looking at the release notes:
>>
>> * Deprecation of some VTL syntax constructs: the formal reference
>> notation |${...}| is now preferred for non-bare references (|$foo|
>> is still fine, but |$foo.bar| should be rewritten as |${foo.bar}|).
>> Deprecation warnings are off by default; the next minor release will
>> turn them on by default, and the next major release will remove
>> support for those deprecated forms.
>>
>> I enabled runtime.deprecation.warn=true, to see the warnings, there
>> are hundreds :
>>
>> 2026-06-16 08:19:17,094 WARN org.apache.velocity.rendering
>> ASTReference:init - the informal notation
>> '$utils.formatDate($utils.now, $text.get("date.toStringFormat"))' is
>> deprecated in output; use the formal notation ${...} instead [line
>> 634, column 21]
>>
>> This is a very big change, adding ${} to 95% of our velocity statements.
>>
>> Going forward > 2.5 is this change necessary or can it be ignored?
>>
>> Cheers Greg
>>
>> On 14/06/2026 18:06, Claude Brisson via dev wrote:
>>> The test build of Velocity Engine 2.5 RC1 is available.
>>>
>>> No determination as to the quality ('alpha,' 'beta,' or 'GA') of
>>> Velocity Engine 2.5 has been made, and at this time it is simply a
>>> "test build". We welcome any comments you may have, and will take
>>> all feedback into account if a quality vote is called for this build.
>>>
>>> Release notes:
>>>
>>> *
>>> https://dist.apache.org/repos/dist/dev/velocity/velocity-engine/2.5/release-notes.html
>>>
>>> Distribution:
>>>
>>> * https://dist.apache.org/repos/dist/dev/velocity/velocity-engine/2.5/
>>>
>>> Maven 2 staging repository:
>>>
>>> *
>>> https://repository.apache.org/content/repositories/orgapachevelocity-1050/
>>>
>>> Documentation:
>>>
>>> * https://velocity.apache.org/engine/2.5/
>>>
>>> Sources:
>>>
>>> * https://github.com/apache/velocity-engine/releases/tag/2.5-RC1
>>>
>>> A vote regarding the quality of this test build will be initiated
>>> within the next couple of days.
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>