From 92d42e6fadb5e554b5223c93169bb4850da31b4c Mon Sep 17 00:00:00 2001 From: Claude Brisson Date: Sun, 17 Jul 2016 23:33:09 +0000 Subject: [engine] keep macros in defining templates (applied reviewed patch from VELOCITY-797, fixes VELOCITY-797 and VELOCITY-776); plus some code cleaning that was in the patch git-svn-id: https://svn.apache.org/repos/asf/velocity/engine/trunk@1753137 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/velocity/runtime/directive/Evaluate.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java') diff --git a/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java b/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java index 89d8a51d..19c2943e 100644 --- a/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java +++ b/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java @@ -19,9 +19,7 @@ package org.apache.velocity.runtime.directive; * under the License. */ -import java.io.IOException; -import java.io.StringReader; -import java.io.Writer; +import org.apache.velocity.Template; import org.apache.velocity.context.InternalContextAdapter; import org.apache.velocity.exception.MethodInvocationException; import org.apache.velocity.exception.ParseErrorException; @@ -34,6 +32,10 @@ import org.apache.velocity.runtime.parser.node.Node; import org.apache.velocity.runtime.parser.node.SimpleNode; import org.apache.velocity.util.introspection.Info; +import java.io.IOException; +import java.io.StringReader; +import java.io.Writer; + /** * Evaluates the directive argument as a VTL string, using the existing * context. @@ -151,11 +153,17 @@ public class Evaluate extends Directive * The new string needs to be parsed since the text has been dynamically generated. */ String templateName = context.getCurrentTemplateName(); + Template template = (Template)context.getCurrentResource(); + if (template == null) + { + template = new Template(); + template.setName(templateName); + } SimpleNode nodeTree = null; try { - nodeTree = rsvc.parse(new StringReader(sourceText), templateName, false); + nodeTree = rsvc.parse(new StringReader(sourceText), template); } catch (ParseException pex) { -- cgit v1.2.3