diff options
author | Claude Brisson <cbrisson@apache.org> | 2016-07-17 23:33:09 +0000 |
---|---|---|
committer | Claude Brisson <cbrisson@apache.org> | 2016-07-17 23:33:09 +0000 |
commit | 92d42e6fadb5e554b5223c93169bb4850da31b4c (patch) | |
tree | 0c9d5af4d90e69cfcbb594af5f4adcba9a582777 /velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java | |
parent | afe506bb4b3c93d331072e0d2814e8d01cf09eac (diff) | |
download | apache-velocity-engine-92d42e6fadb5e554b5223c93169bb4850da31b4c.tar.gz |
[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
Diffstat (limited to 'velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java')
-rw-r--r-- | velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java | 16 |
1 files changed, 12 insertions, 4 deletions
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) { |