aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java
diff options
context:
space:
mode:
authorClaude Brisson <cbrisson@apache.org>2016-07-17 23:33:09 +0000
committerClaude Brisson <cbrisson@apache.org>2016-07-17 23:33:09 +0000
commit92d42e6fadb5e554b5223c93169bb4850da31b4c (patch)
tree0c9d5af4d90e69cfcbb594af5f4adcba9a582777 /velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/Evaluate.java
parentafe506bb4b3c93d331072e0d2814e8d01cf09eac (diff)
downloadapache-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.java16
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)
{