[ https://issues.apache.org/jira/browse/VELOCITY-652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claude Brisson resolved VELOCITY-652. ------------------------------------- Resolution: Fixed Assignee: Claude Brisson Fix Version/s: 2.x User guide documentation updated in commit 1760183. > Macros encountered in templates are placed in global scope if no global > library is specified and > velocimacro.permissions.allow.inline.to.replace.global = false > --------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: VELOCITY-652 > URL: https://issues.apache.org/jira/browse/VELOCITY-652 > Project: Velocity > Issue Type: Improvement > Components: Engine > Affects Versions: 1.6 > Reporter: Lauri Piispanen > Assignee: Claude Brisson > Priority: Minor > Fix For: 2.x > > Attachments: VelociMacroNamespaceTestCase.zip > > > This is a minor issue and more of a documentation/implementation mismatch. > With default settings (allow.inline.to.replace.global=false, > velocimacro.library not specified etc.) the first time a velocimacro is > encountered in a template, it is placed in global scope and thus replaces all > inline macros. Explicitly setting "allow.inline.to.replace.global=true" will > cure the issue, even though it should have no effect as there are no global > macros specified - hence nothing to replace! Albeit this is a configuration > documentation issue, the behavior can be quite confusing and should probably > be changed to have an empty global library if none is specified. > Steps to reproduce: > 1) create new RuntimeInstance and only define the resource loader in > properties > 2) create two templates, named test1.vtl and test2.vtl: > --- test1.vtl: > #macro( myMacro ) > Macro A > #end > #myMacro() > --- test2.vtl: > #macro( myMacro ) > Macro B > #end > #myMacro() > 3) first merge() test1.vm, should return "Macro A" (and it does) > 4) now merge() test2.vm, should return "Macro B" but returns "Macro A" instead > 5) create new RuntimeInstance with > "velocimacro.permissions.allow.inline.to.replace.global = true" > 6) retry merging and observe correct behavior -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org