[xwiki-devs] Fwd: [ANNOUNCE] Apache Velocity Engine 1.7
fyi.... At some point we'll need to migrate. Some things I've noticed from the release notes: - their new syntax #[[...]]# is going to be fun for us... :( - the velocimacro.context.localscope replacement is important for us -Vincent Begin forwarded message:
From: Nathan Bubna <[email protected]> Date: December 1, 2010 7:46:29 AM GMT+01:00 To: [email protected], Velocity Developers List <[email protected]>, Velocity Users List <[email protected]>, general <[email protected]> Subject: [ANNOUNCE] Apache Velocity Engine 1.7
The Apache Velocity Team announces the immediate availability of the of Apache Velocity Engine 1.7. This release is fully compatible with the previous release and includes significant improvements in performance, stability and features.
Apache Velocity is well-known in the Java field as a lightweight, easy-to-use templating library for creating dynamic web sites and performing other text-generation tasks.
Much work in this release has gone to making Velocity more user-friendly, adding some long-desired features and improving many others. Apart from this, numerous bugs were fixed (both common and obscure), deprecation warnings were added to push people toward the eventual 2.0 version, and performance continues to be improved. Some details are listed below:
* There are four new syntax features: - #[[ This is a literal text block. It is not parsed, but directly fed into the output. ]]# - #@yourMacro() can now have body content. Just remember to add the @ when calling it with a body! #end - You can use brackets to get and set values in lists (and arrays). e.g. #set( $foo[2] = $bar[$i] ) - Quotes, both single and double, may be escaped in string literals via doubling. e.g. #set( $foo = "Like ""this""!" )
* There are five notable deprecations: - $velocityCount should be changed to $foreach.index (0-base) or $foreach.count (1-base) - $velocityHasNext should be changed to $foreach.hasNext, $foreach.last or $foreach.first - The #literal directive has been replaced by #[[ the much superior textblock ]]# - The velocimacro.context.localscope setting is being phased out; please get/set local #macro references as members of the optional, context-aware and self-documenting $macro "namespace" object. (e.g. #set( $macro.foo = 'bar' ) and $macro.foo). Enable this by setting macro.provide.scope.control=true in your properties. - The directive.evaluate.context.class setting is being phased out; please get/set local #evaluate references as members of the $evaluate "namespace" object. Enable this by setting evaluate.provide.scope.control=true in your properties.
* The are three important changes: - The #stop directive now stops rendering instead of parsing, making it much more useful. - The #break directive can now be used in any scope, not just in a nested #foreach. It will terminate the nearest content "block", whether a directive, a macro body, or an entire template. - All templates, standard block (aka "content") directives, macros, macro bodies, #evaluate content and #define blocks can be easily configured to have an automatically-provided, context-aware and self-documenting namespace reference in which you can safely and securely #set and get any "local" references to keep them out of the global context.
See the change log for a more complete explanation of any and all of these, or ask us about them at [email protected].
Documentation Velocity 1.7 can be found here: http://velocity.apache.org/engine/releases/velocity-1.7/
The change log is here: http://velocity.apache.org/engine/releases/velocity-1.7/changes-report.html
Apache Velocity 1.7 can be downloaded here: http://velocity.apache.org/download.cgi
For the Apache Velocity Team Nathan Bubna
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
On 12/01/2010 10:40 AM, Vincent Massol wrote:
fyi.... At some point we'll need to migrate.
Some things I've noticed from the release notes: - their new syntax #[[...]]# is going to be fun for us... :(
Why the sad face?
- the velocimacro.context.localscope replacement is important for us
Not quite, it means the default behavior is getting closer to what we're doing.
-Vincent
Begin forwarded message:
From: Nathan Bubna<[email protected]> Date: December 1, 2010 7:46:29 AM GMT+01:00 To: [email protected], Velocity Developers List<[email protected]>, Velocity Users List<[email protected]>, general<[email protected]> Subject: [ANNOUNCE] Apache Velocity Engine 1.7
The Apache Velocity Team announces the immediate availability of the of Apache Velocity Engine 1.7. This release is fully compatible with the previous release and includes significant improvements in performance, stability and features.
Apache Velocity is well-known in the Java field as a lightweight, easy-to-use templating library for creating dynamic web sites and performing other text-generation tasks.
Much work in this release has gone to making Velocity more user-friendly, adding some long-desired features and improving many others. Apart from this, numerous bugs were fixed (both common and obscure), deprecation warnings were added to push people toward the eventual 2.0 version, and performance continues to be improved. Some details are listed below:
* There are four new syntax features: - #[[ This is a literal text block. It is not parsed, but directly fed into the output. ]]# - #@yourMacro() can now have body content. Just remember to add the @ when calling it with a body! #end - You can use brackets to get and set values in lists (and arrays). e.g. #set( $foo[2] = $bar[$i] ) - Quotes, both single and double, may be escaped in string literals via doubling. e.g. #set( $foo = "Like ""this""!" )
* There are five notable deprecations: - $velocityCount should be changed to $foreach.index (0-base) or $foreach.count (1-base)
^This is important for us, since we've been using $velocityCount in many places.
- $velocityHasNext should be changed to $foreach.hasNext, $foreach.last or $foreach.first - The #literal directive has been replaced by #[[ the much superior textblock ]]# - The velocimacro.context.localscope setting is being phased out; please get/set local #macro references as members of the optional, context-aware and self-documenting $macro "namespace" object. (e.g. #set( $macro.foo = 'bar' ) and $macro.foo). Enable this by setting macro.provide.scope.control=true in your properties. - The directive.evaluate.context.class setting is being phased out; please get/set local #evaluate references as members of the $evaluate "namespace" object. Enable this by setting evaluate.provide.scope.control=true in your properties.
* The are three important changes: - The #stop directive now stops rendering instead of parsing, making it much more useful. - The #break directive can now be used in any scope, not just in a nested #foreach. It will terminate the nearest content "block", whether a directive, a macro body, or an entire template.
^This is cool.
- All templates, standard block (aka "content") directives, macros, macro bodies, #evaluate content and #define blocks can be easily configured to have an automatically-provided, context-aware and self-documenting namespace reference in which you can safely and securely #set and get any "local" references to keep them out of the global context.
^This is nice for local, temporary variables which normally leak out globally in our current code. We should enable some local scopes and start using them.
See the change log for a more complete explanation of any and all of these, or ask us about them at [email protected].
Documentation Velocity 1.7 can be found here: http://velocity.apache.org/engine/releases/velocity-1.7/
The change log is here: http://velocity.apache.org/engine/releases/velocity-1.7/changes-report.html
Apache Velocity 1.7 can be downloaded here: http://velocity.apache.org/download.cgi
For the Apache Velocity Team Nathan Bubna
-- Sergiu Dumitriu http://purl.org/net/sergiu/
On Dec 1, 2010, at 10:32 PM, Sergiu Dumitriu wrote:
On 12/01/2010 10:40 AM, Vincent Massol wrote:
fyi.... At some point we'll need to migrate.
Some things I've noticed from the release notes: - their new syntax #[[...]]# is going to be fun for us... :(
Why the sad face?
Well it's going to be hard to put a link in monospace font inside a velocity macro: {{velocity}} ... ##[[link>>ref]]## ... {{/velocity}} Well actually it was already not possible to use monospace inside the velocity macro since it's considered velocity comments and there was no way to escape a velocity comment in velocity, so indeed it's not going to change much... Thanks -Vincent
- the velocimacro.context.localscope replacement is important for us
Not quite, it means the default behavior is getting closer to what we're doing.
-Vincent
Begin forwarded message:
From: Nathan Bubna<[email protected]> Date: December 1, 2010 7:46:29 AM GMT+01:00 To: [email protected], Velocity Developers List<[email protected]>, Velocity Users List<[email protected]>, general<[email protected]> Subject: [ANNOUNCE] Apache Velocity Engine 1.7
The Apache Velocity Team announces the immediate availability of the of Apache Velocity Engine 1.7. This release is fully compatible with the previous release and includes significant improvements in performance, stability and features.
Apache Velocity is well-known in the Java field as a lightweight, easy-to-use templating library for creating dynamic web sites and performing other text-generation tasks.
Much work in this release has gone to making Velocity more user-friendly, adding some long-desired features and improving many others. Apart from this, numerous bugs were fixed (both common and obscure), deprecation warnings were added to push people toward the eventual 2.0 version, and performance continues to be improved. Some details are listed below:
* There are four new syntax features: - #[[ This is a literal text block. It is not parsed, but directly fed into the output. ]]# - #@yourMacro() can now have body content. Just remember to add the @ when calling it with a body! #end - You can use brackets to get and set values in lists (and arrays). e.g. #set( $foo[2] = $bar[$i] ) - Quotes, both single and double, may be escaped in string literals via doubling. e.g. #set( $foo = "Like ""this""!" )
* There are five notable deprecations: - $velocityCount should be changed to $foreach.index (0-base) or $foreach.count (1-base)
^This is important for us, since we've been using $velocityCount in many places.
- $velocityHasNext should be changed to $foreach.hasNext, $foreach.last or $foreach.first - The #literal directive has been replaced by #[[ the much superior textblock ]]# - The velocimacro.context.localscope setting is being phased out; please get/set local #macro references as members of the optional, context-aware and self-documenting $macro "namespace" object. (e.g. #set( $macro.foo = 'bar' ) and $macro.foo). Enable this by setting macro.provide.scope.control=true in your properties. - The directive.evaluate.context.class setting is being phased out; please get/set local #evaluate references as members of the $evaluate "namespace" object. Enable this by setting evaluate.provide.scope.control=true in your properties.
* The are three important changes: - The #stop directive now stops rendering instead of parsing, making it much more useful. - The #break directive can now be used in any scope, not just in a nested #foreach. It will terminate the nearest content "block", whether a directive, a macro body, or an entire template.
^This is cool.
- All templates, standard block (aka "content") directives, macros, macro bodies, #evaluate content and #define blocks can be easily configured to have an automatically-provided, context-aware and self-documenting namespace reference in which you can safely and securely #set and get any "local" references to keep them out of the global context.
^This is nice for local, temporary variables which normally leak out globally in our current code. We should enable some local scopes and start using them.
See the change log for a more complete explanation of any and all of these, or ask us about them at [email protected].
Documentation Velocity 1.7 can be found here: http://velocity.apache.org/engine/releases/velocity-1.7/
The change log is here: http://velocity.apache.org/engine/releases/velocity-1.7/changes-report.html
Apache Velocity 1.7 can be downloaded here: http://velocity.apache.org/download.cgi
For the Apache Velocity Team Nathan Bubna
participants (2)
-
Sergiu Dumitriu -
Vincent Massol