You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by lg...@apache.org on 2005/09/06 22:14:05 UTC

svn commit: r279084 - in /cocoon/blocks/template/trunk/java/org/apache/cocoon/template: ./ environment/ expression/ instruction/ script/ script/event/

Author: lgawron
Date: Tue Sep  6 13:10:53 2005
New Revision: 279084

URL: http://svn.apache.org/viewcvs?rev=279084&view=rev
Log:
expressions compiled with ExpressionFactory

Modified:
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/TransformerAdapter.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/environment/ParsingContext.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/JXTExpressionCompiler.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/Substitutions.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Attribute.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Call.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Choose.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Comment.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Define.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Eval.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/EvalBody.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ForEach.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatDate.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatNumber.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/If.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Import.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/LocaleAwareInstruction.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Otherwise.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Out.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Parameter.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ParameterInstance.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Set.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Template.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/When.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/DefaultInstructionFactory.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/InstructionFactory.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/Parser.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/Characters.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/IgnorableWhitespace.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/StartElement.java
    cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/TextEvent.java

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/TransformerAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/TransformerAdapter.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/TransformerAdapter.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/TransformerAdapter.java Tue Sep  6 13:10:53 2005
@@ -61,6 +61,7 @@
         }
 
         public void dispose() {
+            setParsingContext( null );
             this.manager.release(this.parsingContext.getInstructionFactory());
             this.manager.release(this.parsingContext.getExpressionFactory());
         }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/environment/ParsingContext.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/environment/ParsingContext.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/environment/ParsingContext.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/environment/ParsingContext.java Tue Sep  6 13:10:53 2005
@@ -16,6 +16,7 @@
 package org.apache.cocoon.template.environment;
 
 import org.apache.cocoon.components.expression.ExpressionFactory;
+import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.InstructionFactory;
 
 /**
@@ -24,26 +25,23 @@
 public class ParsingContext {
     private ExpressionFactory expressionFactory;
     private InstructionFactory instructionFactory;
+    private JXTExpressionCompiler jxtExpressionCompiler;
 
     public ParsingContext(ExpressionFactory expressionFactory, InstructionFactory instructionFactory) {
         this.expressionFactory = expressionFactory;
         this.instructionFactory = instructionFactory;
+        this.jxtExpressionCompiler = new JXTExpressionCompiler(this.expressionFactory);
     }
 
     public ExpressionFactory getExpressionFactory() {
         return expressionFactory;
     }
 
-    public void setExpressionFactory(ExpressionFactory expressionFactory) {
-        this.expressionFactory = expressionFactory;
-    }
-
     public InstructionFactory getInstructionFactory() {
         return instructionFactory;
     }
 
-    public void setInstructionFactory(InstructionFactory instructionFactory) {
-        this.instructionFactory = instructionFactory;
+    public JXTExpressionCompiler getJxtExpressionCompiler() {
+        return jxtExpressionCompiler;
     }
-
 }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/JXTExpressionCompiler.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/JXTExpressionCompiler.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/JXTExpressionCompiler.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/JXTExpressionCompiler.java Tue Sep  6 13:10:53 2005
@@ -24,31 +24,34 @@
 import java.io.StringReader;
 
 import org.apache.cocoon.components.expression.Expression;
-import org.apache.cocoon.components.expression.jexl.JexlCompiler;
-import org.apache.cocoon.components.expression.jxpath.JXPathCompiler;
+import org.apache.cocoon.components.expression.ExpressionFactory;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 public class JXTExpressionCompiler {
-    public static JXPathCompiler jxpathCompiler = new JXPathCompiler();
-    public static JexlCompiler jexlCompiler = new JexlCompiler();
+    private ExpressionFactory expressionFactory;
     public static String JXPATH = "jxpath";
     public static String JEXL = "jexl";
-    public static JXTExpression compile(final String expression, boolean xpath)
+    
+    public JXTExpressionCompiler(ExpressionFactory expressionFactory) {
+        this.expressionFactory = expressionFactory;
+    }
+    
+    public JXTExpression compile(final String expression, boolean xpath)
         throws Exception {
         Expression compiled;
-        if (xpath) {
-            compiled = jxpathCompiler.compile(JXPATH, expression);
-        } else {
-            compiled = jexlCompiler.compile(JEXL, expression);
-        }
+        if (xpath)
+            compiled = this.expressionFactory.getExpression(JXPATH, expression);
+        else
+            compiled = this.expressionFactory.getExpression(JEXL, expression);
         return new JXTExpression(expression, compiled);
     }
-    public static JXTExpression compileBoolean(String val, String msg,
+    
+    public JXTExpression compileBoolean(String val, String msg,
                                                Locator location) throws SAXException {
-        JXTExpression res = JXTExpressionCompiler.compileExpr(val, msg, location);
+        JXTExpression res = compileExpr(val, msg, location);
         if (res != null && res.getCompiledExpression() == null && res.getRaw() != null) {
             res.setCompiledExpression(Boolean.valueOf(res.getRaw()));
         }
@@ -58,15 +61,15 @@
      * Compile an integer expression (returns either a Compiled Expression or an
      * Integer literal)
      */
-    public static JXTExpression compileInt(String val, String msg,
+    public JXTExpression compileInt(String val, String msg,
             Locator location) throws SAXException {
-        JXTExpression res = JXTExpressionCompiler.compileExpr(val, msg, location);
+        JXTExpression res = compileExpr(val, msg, location);
         if (res != null && res.getCompiledExpression() == null && res.getRaw() != null) {
             res.setCompiledExpression(Integer.valueOf(res.getRaw()));
         }
         return res;
     }
-    public static JXTExpression compileExpr(String inStr) throws Exception {
+    public JXTExpression compileExpr(String inStr) throws Exception {
         try {
             if (inStr == null) {
                 return null;
@@ -114,7 +117,7 @@
      * Compile a single Jexl expr (contained in ${}) or XPath expression
      * (contained in #{})
      */
-    public static JXTExpression compileExpr(String expr, String errorPrefix,
+    public JXTExpression compileExpr(String expr, String errorPrefix,
                                             Locator location) throws SAXParseException {
         try {
             return compileExpr(expr);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/Substitutions.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/Substitutions.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/Substitutions.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/expression/Substitutions.java Tue Sep  6 13:10:53 2005
@@ -25,6 +25,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -37,16 +38,16 @@
     final private List substitutions;
     final private boolean hasSubstitutions;
 
-    public Substitutions(Locator location, String stringTemplate) throws SAXException {
-        this(location, new StringReader(stringTemplate));
+    public Substitutions(ParsingContext parsingContext, Locator location, String stringTemplate) throws SAXException {
+        this(parsingContext, location, new StringReader(stringTemplate));
     }
 
-    public Substitutions(Locator location, char[] chars, int start, int length)
+    public Substitutions(ParsingContext parsingContext, Locator location, char[] chars, int start, int length)
         throws SAXException {
-        this(location, new CharArrayReader(chars, start, length));
+        this(parsingContext, location, new CharArrayReader(chars, start, length));
     }
 
-    private Substitutions(Locator location, Reader in) throws SAXException {
+    private Substitutions(ParsingContext parsingContext, Locator location, Reader in) throws SAXException {
         LinkedList substitutions = new LinkedList();
         StringBuffer buf = new StringBuffer();
         buf.setLength(0);
@@ -68,7 +69,7 @@
                             String str = buf.toString();
                             JXTExpression compiledExpression;
                             try {
-                                compiledExpression = JXTExpressionCompiler.compile(str, xpath);
+                                compiledExpression = parsingContext.getJxtExpressionCompiler().compile(str, xpath);
                             } catch (Exception exc) {
                                 throw new SAXParseException(exc.getMessage(),
                                                             location, exc);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Attribute.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Attribute.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Attribute.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Attribute.java Tue Sep  6 13:10:53 2005
@@ -7,8 +7,8 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.cocoon.template.xml.AttributeAwareXMLConsumer;
@@ -25,7 +25,7 @@
     private JXTExpression name;
     private JXTExpression value;
 
-    public Attribute(StartElement raw, Attributes attrs, Stack stack)
+    public Attribute(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
             throws SAXException {
         super(raw);
 
@@ -35,7 +35,7 @@
             throw new SAXParseException("parameter: \"name\" is required",
                     locator, null);
         }
-        this.name = JXTExpressionCompiler.compileExpr(name, "parameter: \"name\": ",
+        this.name = parsingContext.getJxtExpressionCompiler().compileExpr(name, "parameter: \"name\": ",
                 locator);
 
         String value = attrs.getValue("value");
@@ -43,7 +43,7 @@
             throw new SAXParseException("parameter: \"value\" is required",
                     locator, null);
 
-        this.value = JXTExpressionCompiler.compileExpr(value, "parameter: \"value\": ",
+        this.value = parsingContext.getJxtExpressionCompiler().compileExpr(value, "parameter: \"value\": ",
                 locator);
     }
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Call.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Call.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Call.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Call.java Tue Sep  6 13:10:53 2005
@@ -23,8 +23,8 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.AttributeEvent;
 import org.apache.cocoon.template.script.event.Characters;
@@ -63,7 +63,7 @@
         }
     }
 
-    public Call(StartElement raw, Attributes attrs, Stack stack)
+    public Call(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
             throws SAXException {
         super(raw);
         this.parameters = new HashMap();
@@ -74,12 +74,12 @@
             throw new SAXParseException("if: \"test\" is required", locator,
                     null);
         }
-        this.macro = JXTExpressionCompiler.compileExpr(name, "call: \"macro\": ",
+        this.macro = parsingContext.getJxtExpressionCompiler().compileExpr(name, "call: \"macro\": ",
                 locator);
 
         String namespace = StringUtils.defaultString(attrs
                 .getValue("targetNamespace"));
-        this.targetNamespace = JXTExpressionCompiler.compileExpr(namespace,
+        this.targetNamespace = parsingContext.getJxtExpressionCompiler().compileExpr(namespace,
                 "call: \"targetNamespace\": ", locator);
     }
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Choose.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Choose.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Choose.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Choose.java Tue Sep  6 13:10:53 2005
@@ -19,6 +19,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -35,7 +36,7 @@
     private When firstChoice;
     private Otherwise otherwise;
 
-    public Choose(StartElement raw, Attributes attrs, Stack stack) {
+    public Choose(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) {
         super(raw);
     }
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Comment.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Comment.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Comment.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Comment.java Tue Sep  6 13:10:53 2005
@@ -21,6 +21,7 @@
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -36,7 +37,7 @@
  * @version SVN $Id$
  */
 public class Comment extends Instruction {
-    public Comment(StartElement raw, Attributes attrs, Stack stack) {
+    public Comment(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) {
         // <jx:comment>This will be parsed</jx:comment>
         super(raw);
     }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Define.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Define.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Define.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Define.java Tue Sep  6 13:10:53 2005
@@ -21,6 +21,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.event.Characters;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.IgnorableWhitespace;
@@ -43,7 +44,7 @@
     private final Map parameters;
     private Event body;
 
-    public Define(StartElement raw, Attributes attrs, Stack stack) 
+    public Define(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException {
 
         super(raw);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Eval.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Eval.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Eval.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Eval.java Tue Sep  6 13:10:53 2005
@@ -20,8 +20,8 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -36,13 +36,13 @@
 public class Eval extends Instruction {
     private final JXTExpression value;
 
-    public Eval(StartElement raw, Attributes attrs, Stack stack)
+    public Eval(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);
 
         String select = attrs.getValue("select");
-        this.value = JXTExpressionCompiler.compileExpr(select, "eval: \"select\":", getLocation());
+        this.value = parsingContext.getJxtExpressionCompiler().compileExpr(select, "eval: \"select\":", getLocation());
     }
 
     public Event execute(final XMLConsumer consumer,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/EvalBody.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/EvalBody.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/EvalBody.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/EvalBody.java Tue Sep  6 13:10:53 2005
@@ -20,6 +20,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -32,7 +33,7 @@
  * @version SVN $Id$
  */
 public class EvalBody extends Instruction {
-    public EvalBody(StartElement raw, Attributes attrs, Stack stack) {
+    public EvalBody(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) {
         super(raw);
     }
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ForEach.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ForEach.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ForEach.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ForEach.java Tue Sep  6 13:10:53 2005
@@ -21,6 +21,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
 import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.Invoker;
@@ -45,7 +46,7 @@
     private final JXTExpression step;
     private final Boolean lenient;
 
-    public ForEach(StartElement raw, Attributes attrs, Stack stack)
+    public ForEach(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);
@@ -55,11 +56,13 @@
 
         String items = attrs.getValue("items");
         String select = attrs.getValue("select");
-        this.var = JXTExpressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
-        this.varStatus = JXTExpressionCompiler.compileExpr(attrs.getValue("varStatus"), null, locator);
-        this.begin = JXTExpressionCompiler.compileInt(attrs.getValue("begin"), name, locator);
-        this.end = JXTExpressionCompiler.compileInt(attrs.getValue("end"), name, locator);
-        this.step = JXTExpressionCompiler.compileInt(attrs.getValue("step"), name, locator);
+        
+        JXTExpressionCompiler expressionCompiler = parsingContext.getJxtExpressionCompiler();
+        this.var = expressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
+        this.varStatus = expressionCompiler.compileExpr(attrs.getValue("varStatus"), null, locator);
+        this.begin = expressionCompiler.compileInt(attrs.getValue("begin"), name, locator);
+        this.end = expressionCompiler.compileInt(attrs.getValue("end"), name, locator);
+        this.step = expressionCompiler.compileInt(attrs.getValue("step"), name, locator);
         String lenientValue = attrs.getValue("lenient");
         this.lenient = (lenientValue == null) ? null : Boolean.valueOf(lenientValue);
 
@@ -73,7 +76,7 @@
                                         locator, null);
         }
         
-        this.items = JXTExpressionCompiler.compileExpr(items == null ? select : items, null, locator);
+        this.items = expressionCompiler.compileExpr(items == null ? select : items, null, locator);
     }
 
     public Event execute(final XMLConsumer consumer,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatDate.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatDate.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatDate.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatDate.java Tue Sep  6 13:10:53 2005
@@ -24,6 +24,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
 import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.Event;
@@ -49,19 +50,20 @@
     private JXTExpression timeZone;
     private JXTExpression dateStyle;
     private JXTExpression timeStyle;
-    public FormatDate(StartElement raw, Attributes attrs, Stack stack) 
+    public FormatDate(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException{
-        super(raw, attrs, stack);
+        super(parsingContext, raw, attrs, stack);
 
         Locator locator = getLocation();
 
-        this.var = JXTExpressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
-        this.value = JXTExpressionCompiler.compileExpr(attrs.getValue("value"), null, locator);
-        this.type = JXTExpressionCompiler.compileExpr(attrs.getValue("type"), null, locator);
-        this.pattern = JXTExpressionCompiler.compileExpr(attrs.getValue("pattern"), null, locator);
-        this.timeZone = JXTExpressionCompiler.compileExpr(attrs.getValue("timeZone"), null, locator);
-        this.dateStyle = JXTExpressionCompiler.compileExpr(attrs.getValue("dateStyle"), null, locator);
-        this.timeStyle = JXTExpressionCompiler.compileExpr(attrs.getValue("timeStyle"), null, locator);
+        JXTExpressionCompiler expressionCompiler = parsingContext.getJxtExpressionCompiler();
+        this.var = expressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
+        this.value = expressionCompiler.compileExpr(attrs.getValue("value"), null, locator);
+        this.type = expressionCompiler.compileExpr(attrs.getValue("type"), null, locator);
+        this.pattern = expressionCompiler.compileExpr(attrs.getValue("pattern"), null, locator);
+        this.timeZone = expressionCompiler.compileExpr(attrs.getValue("timeZone"), null, locator);
+        this.dateStyle = expressionCompiler.compileExpr(attrs.getValue("dateStyle"), null, locator);
+        this.timeStyle = expressionCompiler.compileExpr(attrs.getValue("timeStyle"), null, locator);
     }
 
     public Event execute(final XMLConsumer consumer,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatNumber.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatNumber.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatNumber.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/FormatNumber.java Tue Sep  6 13:10:53 2005
@@ -25,6 +25,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
 import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.Event;
@@ -40,7 +41,6 @@
  * @version SVN $Id$
  */
 public class FormatNumber extends LocaleAwareInstruction {
-
     private JXTExpression value;
     private JXTExpression type;
     private JXTExpression pattern;
@@ -69,30 +69,31 @@
         }
     }
 
-    public FormatNumber(StartElement raw, Attributes attrs, Stack stack) 
+    public FormatNumber(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException {
-        super(raw, attrs, stack);
+        super(parsingContext, raw, attrs, stack);
 
         Locator locator = getLocation();
 
-        this.value = JXTExpressionCompiler.compileExpr(attrs.getValue("value"), null, locator);
-        this.type = JXTExpressionCompiler.compileExpr(attrs.getValue("type"), null, locator);
-        this.pattern = JXTExpressionCompiler.compileExpr(attrs.getValue("pattern"), null, locator);
+        JXTExpressionCompiler expressionCompiler = parsingContext.getJxtExpressionCompiler();
+        this.value = expressionCompiler.compileExpr(attrs.getValue("value"), null, locator);
+        this.type = expressionCompiler.compileExpr(attrs.getValue("type"), null, locator);
+        this.pattern = expressionCompiler.compileExpr(attrs.getValue("pattern"), null, locator);
         this.currencyCode =
-            JXTExpressionCompiler.compileExpr(attrs.getValue("currencyCode"), null, locator);
+            expressionCompiler.compileExpr(attrs.getValue("currencyCode"), null, locator);
         this.currencySymbol =
-            JXTExpressionCompiler.compileExpr(attrs.getValue("currencySymbol"), null, locator);
+            expressionCompiler.compileExpr(attrs.getValue("currencySymbol"), null, locator);
         this.isGroupingUsed =
-            JXTExpressionCompiler.compileBoolean(attrs.getValue("isGroupingUsed"), null, locator);
+            expressionCompiler.compileBoolean(attrs.getValue("isGroupingUsed"), null, locator);
         this.maxIntegerDigits =
-            JXTExpressionCompiler.compileInt(attrs.getValue("maxIntegerDigits"), null, locator);
+            expressionCompiler.compileInt(attrs.getValue("maxIntegerDigits"), null, locator);
         this.minIntegerDigits =
-            JXTExpressionCompiler.compileInt(attrs.getValue("minIntegerDigits"), null, locator);
+            expressionCompiler.compileInt(attrs.getValue("minIntegerDigits"), null, locator);
         this.maxFractionDigits =
-            JXTExpressionCompiler.compileInt(attrs.getValue("maxFractionDigits"), null, locator);
+            expressionCompiler.compileInt(attrs.getValue("maxFractionDigits"), null, locator);
         this.minFractionDigits =
-            JXTExpressionCompiler.compileInt(attrs.getValue("minFractionDigits"), null, locator);
-        this.var = JXTExpressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
+            expressionCompiler.compileInt(attrs.getValue("minFractionDigits"), null, locator);
+        this.var = expressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
     }
 
     public Event execute(final XMLConsumer consumer,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/If.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/If.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/If.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/If.java Tue Sep  6 13:10:53 2005
@@ -20,8 +20,8 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.cocoon.xml.XMLConsumer;
@@ -36,7 +36,7 @@
 public class If extends Instruction {
     private final JXTExpression test;
 
-    public If(StartElement raw, Attributes attrs, Stack stack) 
+    public If(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException {
 
         super(raw);
@@ -44,7 +44,7 @@
         Locator locator = getLocation();
         String test = attrs.getValue("test");
         if (test != null) {
-            this.test = JXTExpressionCompiler.compileExpr(test, "if: \"test\": ", locator);
+            this.test = parsingContext.getJxtExpressionCompiler().compileExpr(test, "if: \"test\": ", locator);
             // Why is test lenient?
             this.test.setLenient(Boolean.TRUE);
         } else {

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Import.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Import.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Import.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Import.java Tue Sep  6 13:10:53 2005
@@ -23,8 +23,8 @@
 import org.apache.cocoon.environment.TemplateObjectModelHelper;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.expression.Literal;
 import org.apache.cocoon.template.expression.Subst;
 import org.apache.cocoon.template.script.Invoker;
@@ -48,7 +48,7 @@
     private final AttributeEvent uri;
     private final JXTExpression select;
 
-    public Import(StartElement raw, Attributes attrs, Stack stack)
+    public Import(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);
@@ -70,7 +70,7 @@
             // as the context object in the imported template
             String context = attrs.getValue("context");
             if (context != null) {
-                select = JXTExpressionCompiler.compileExpr(context, "import: \"context\": ", locator);
+                select = parsingContext.getJxtExpressionCompiler().compileExpr(context, "import: \"context\": ", locator);
             }
         } else {
             throw new SAXParseException("import: \"uri\" is required", locator, null);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/LocaleAwareInstruction.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/LocaleAwareInstruction.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/LocaleAwareInstruction.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/LocaleAwareInstruction.java Tue Sep  6 13:10:53 2005
@@ -19,9 +19,9 @@
 import java.util.Stack;
 
 import org.apache.cocoon.components.expression.ExpressionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.environment.ValueHelper;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -32,9 +32,9 @@
 public class LocaleAwareInstruction extends Instruction {
     private JXTExpression locale;
 
-    public LocaleAwareInstruction(StartElement raw, Attributes attrs, Stack stack) throws SAXException {
+    public LocaleAwareInstruction(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) throws SAXException {
         super(raw);
-        this.locale = JXTExpressionCompiler.compileExpr(attrs.getValue("locale"), null, getLocation());
+        this.locale = parsingContext.getJxtExpressionCompiler().compileExpr(attrs.getValue("locale"), null, getLocation());
     }
 
     protected Locale getLocale(ExpressionContext expressionContext) throws Exception {

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Otherwise.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Otherwise.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Otherwise.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Otherwise.java Tue Sep  6 13:10:53 2005
@@ -17,6 +17,7 @@
 
 import java.util.Stack;
 
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
@@ -26,7 +27,7 @@
  * @version SVN $Id$
  */
 public class Otherwise extends Instruction {
-    public Otherwise(StartElement raw, Attributes attrs, Stack stack)
+    public Otherwise(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Out.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Out.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Out.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Out.java Tue Sep  6 13:10:53 2005
@@ -21,8 +21,8 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -46,7 +46,7 @@
     private Boolean xmlize;
     private Boolean stripRoot;
 
-    public Out(StartElement raw, Attributes attrs, Stack stack)
+    public Out(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);
@@ -55,7 +55,7 @@
         if (value == null)
             throw new SAXParseException("out: \"value\" is required", locator, null);
 
-        this.compiledExpression = JXTExpressionCompiler.compileExpr(value, "out: \"value\": ", locator);
+        this.compiledExpression = parsingContext.getJxtExpressionCompiler().compileExpr(value, "out: \"value\": ", locator);
         String lenientValue = attrs.getValue("lenient");
         Boolean lenient = lenientValue == null ? null : Boolean.valueOf(lenientValue);
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Parameter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Parameter.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Parameter.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Parameter.java Tue Sep  6 13:10:53 2005
@@ -17,6 +17,7 @@
 
 import java.util.Stack;
 
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
@@ -31,7 +32,7 @@
     final String optional;
     private final String defaultValue;
 
-    public Parameter(StartElement raw, Attributes attrs, Stack stack) 
+    public Parameter(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException {
 
         super(raw);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ParameterInstance.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ParameterInstance.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ParameterInstance.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/ParameterInstance.java Tue Sep  6 13:10:53 2005
@@ -19,8 +19,8 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.AttributeEvent;
 import org.apache.cocoon.template.script.event.CopyAttribute;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -37,27 +37,23 @@
     final String name;
     private final Object value;
 
-    public ParameterInstance(StartElement raw, Attributes attrs,
-            Stack stack) throws SAXException {
+    public ParameterInstance(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
+            throws SAXException {
         super(raw);
         Locator locator = getLocation();
         if (stack.size() == 0 || !(stack.peek() instanceof Call)) {
-            throw new SAXParseException("<parameter> not allowed here",
-                    locator, null);
+            throw new SAXParseException("<parameter> not allowed here", locator, null);
         } else {
             this.name = attrs.getValue("name");
             if (this.name == null) {
-                throw new SAXParseException("parameter: \"name\" is required",
-                        locator, null);
+                throw new SAXParseException("parameter: \"name\" is required", locator, null);
             }
 
             String val = attrs.getValue("value");
             if (val == null)
-                throw new SAXParseException("parameter: \"value\" is required",
-                        locator, null);
+                throw new SAXParseException("parameter: \"value\" is required", locator, null);
 
-            this.value = JXTExpressionCompiler.compileExpr(val,
-                    "parameter: \"value\": ", locator);
+            this.value = parsingContext.getJxtExpressionCompiler().compileExpr(val, "parameter: \"value\": ", locator);
         }
     }
 
@@ -71,11 +67,9 @@
         return name;
     }
 
-    public Object getValue(ExpressionContext expressionContext)
-            throws SAXException {
+    public Object getValue(ExpressionContext expressionContext) throws SAXException {
         if (this.value instanceof JXTExpression)
-            return getExpressionValue((JXTExpression) this.value,
-                    expressionContext);
+            return getExpressionValue((JXTExpression) this.value, expressionContext);
         else if (this.value instanceof CopyAttribute) {
             CopyAttribute copy = (CopyAttribute) this.value;
             return copy.getValue();
@@ -83,27 +77,23 @@
             SubstituteAttribute substEvent = (SubstituteAttribute) this.value;
             if (substEvent.getSubstitutions().size() == 1
                     && substEvent.getSubstitutions().get(0) instanceof JXTExpression)
-                return getExpressionValue((JXTExpression) substEvent
-                        .getSubstitutions().get(0), expressionContext);
+                return getExpressionValue((JXTExpression) substEvent.getSubstitutions().get(0), expressionContext);
             else
-                return substEvent.getSubstitutions().toString(getLocation(),
-                        expressionContext);
+                return substEvent.getSubstitutions().toString(getLocation(), expressionContext);
 
         } else {
             throw new Error("this shouldn't have happened");
         }
     }
 
-    private Object getExpressionValue(JXTExpression expr,
-            ExpressionContext expressionContext) throws SAXException {
+    private Object getExpressionValue(JXTExpression expr, ExpressionContext expressionContext) throws SAXException {
         Object val;
         try {
             val = expr.getNode(expressionContext);
         } catch (Exception e) {
             throw new SAXParseException(e.getMessage(), getLocation(), e);
         } catch (Error err) {
-            throw new SAXParseException(err.getMessage(), getLocation(),
-                    new ErrorHolder(err));
+            throw new SAXParseException(err.getMessage(), getLocation(), new ErrorHolder(err));
         }
         return val != null ? val : "";
     }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Set.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Set.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Set.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Set.java Tue Sep  6 13:10:53 2005
@@ -19,8 +19,8 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
@@ -40,7 +40,7 @@
     private final JXTExpression var;
     private final JXTExpression value;
 
-    public Set(StartElement raw, Attributes attrs, Stack stack)
+    public Set(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack)
         throws SAXException {
 
         super(raw);
@@ -51,10 +51,10 @@
         JXTExpression varExpr = null;
         JXTExpression valueExpr = null;
         if (var != null) {
-            varExpr = JXTExpressionCompiler.compileExpr(var, "set: \"var\":", locator);
+            varExpr = parsingContext.getJxtExpressionCompiler().compileExpr(var, "set: \"var\":", locator);
         }
         if (value != null) {
-            valueExpr = JXTExpressionCompiler.compileExpr(value, "set: \"value\":", locator);
+            valueExpr = parsingContext.getJxtExpressionCompiler().compileExpr(value, "set: \"value\":", locator);
         }
         this.var = varExpr;
         this.value = valueExpr;

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Template.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Template.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Template.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/Template.java Tue Sep  6 13:10:53 2005
@@ -19,6 +19,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.cocoon.xml.XMLConsumer;
@@ -29,7 +30,7 @@
  * @version SVN $Id$
  */
 public class Template extends Instruction {
-    public Template(StartElement raw, Attributes attrs, Stack stack) {
+    public Template(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) {
         super(raw);
     }
 

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/When.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/When.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/When.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/instruction/When.java Tue Sep  6 13:10:53 2005
@@ -17,8 +17,8 @@
 
 import java.util.Stack;
 
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.xml.sax.Attributes;
 import org.xml.sax.Locator;
@@ -32,7 +32,7 @@
     private final JXTExpression test;
     private When nextChoice;
 
-    public When(StartElement raw, Attributes attrs, Stack stack) 
+    public When(ParsingContext parsingContext, StartElement raw, Attributes attrs, Stack stack) 
         throws SAXException {
 
         super(raw);
@@ -44,7 +44,7 @@
         }
         String test = attrs.getValue("test");
         if (test != null) {
-            this.test = JXTExpressionCompiler.compileExpr(test, "when: \"test\": ", locator);
+            this.test = parsingContext.getJxtExpressionCompiler().compileExpr(test, "when: \"test\": ", locator);
             // Why is test lenient?
             this.test.setLenient(Boolean.TRUE);
             

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/DefaultInstructionFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/DefaultInstructionFactory.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/DefaultInstructionFactory.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/DefaultInstructionFactory.java Tue Sep  6 13:10:53 2005
@@ -29,6 +29,7 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.instruction.Instruction;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.commons.lang.ClassUtils;
@@ -46,8 +47,8 @@
         InstructionFactory {
     private Map instructions = new HashMap();
     private ServiceManager manager;
-    private final static Class[] INSTRUCTION_CONSTRUCTOR_PARAMS = new Class[] { StartElement.class, Attributes.class,
-            Stack.class };
+    private final static Class[] INSTRUCTION_CONSTRUCTOR_PARAMS = new Class[] { ParsingContext.class,
+            StartElement.class, Attributes.class, Stack.class };
     private final static String CONFIG_LOCATION = "resource://org/apache/cocoon/template/template-instructions.xml";
 
     private void registerInstruction(String instructionName, String targetNamespace, String className)
@@ -83,12 +84,12 @@
         return this.instructions.containsKey(instructionKey);
     }
 
-    public Instruction createInstruction(StartElement startElement, Attributes attrs, Stack stack) throws SAXException {
+    public Instruction createInstruction(ParsingContext parsingContext, StartElement startElement, Attributes attrs, Stack stack) throws SAXException {
         String instructionKey = instructionKey(startElement);
         Constructor constructor = (Constructor) this.instructions.get(instructionKey);
         if (constructor == null)
             throw new SAXParseException("unrecognized instruction: " + instructionKey, startElement.getLocation(), null);
-        Object[] arguments = new Object[] { startElement, attrs, stack };
+        Object[] arguments = new Object[] { parsingContext, startElement, attrs, stack };
         try {
             return (Instruction) constructor.newInstance(arguments);
         } catch (Exception e) {

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/InstructionFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/InstructionFactory.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/InstructionFactory.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/InstructionFactory.java Tue Sep  6 13:10:53 2005
@@ -17,6 +17,7 @@
 
 import java.util.Stack;
 
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.instruction.Instruction;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.xml.sax.Attributes;
@@ -30,7 +31,6 @@
 
     public abstract boolean isInstruction(StartElement element);
 
-    public abstract Instruction createInstruction(
-            StartElement startElement, Attributes attrs, Stack stack)
-            throws SAXException;
+    public abstract Instruction createInstruction(ParsingContext parsingContext, StartElement startElement,
+            Attributes attrs, Stack stack) throws SAXException;
 }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/Parser.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/Parser.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/Parser.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/Parser.java Tue Sep  6 13:10:53 2005
@@ -17,10 +17,8 @@
 
 import java.util.Stack;
 
-import org.apache.cocoon.components.expression.ExpressionFactory;
 import org.apache.cocoon.template.JXTemplateGenerator;
 import org.apache.cocoon.template.environment.ParsingContext;
-import org.apache.cocoon.template.expression.JXTExpressionCompiler;
 import org.apache.cocoon.template.instruction.Instruction;
 import org.apache.cocoon.template.script.event.*;
 import org.apache.commons.lang.StringUtils;
@@ -88,7 +86,7 @@
         if (charBuf != null) {
             char[] chars = new char[charBuf.length()];
             charBuf.getChars(0, charBuf.length(), chars, 0);
-            Characters ev = new Characters(charLocation, chars, 0, chars.length);
+            Characters ev = new Characters(this.parsingContext, charLocation, chars, 0, chars.length);
             lastEvent.setNext(ev);
             lastEvent = ev;
             charLocation = null;
@@ -140,7 +138,7 @@
 
     public void ignorableWhitespace(char[] ch, int start, int length)
             throws SAXException {
-        Event ev = new IgnorableWhitespace(locator, ch, start, length);
+        Event ev = new IgnorableWhitespace(this.parsingContext, locator, ch, start, length);
         addEvent(ev);
     }
 
@@ -176,17 +174,16 @@
                 // root
                 getStartEvent().getTemplateProperties().put(
                         elementAttributes.getLocalName(i),
-                        JXTExpressionCompiler.compileExpr(
-                                elementAttributes.getValue(i), null, locator));
+                        this.parsingContext.getJxtExpressionCompiler().compileExpr(elementAttributes.getValue(i), null,
+                                locator));
                 elementAttributes.removeAttribute(i--);
             }
         }
-        StartElement startElement = new StartElement(locator, namespaceURI,
-                localName, qname, elementAttributes);
+        StartElement startElement = new StartElement(this.parsingContext, locator, namespaceURI, localName, qname,
+                elementAttributes);
         InstructionFactory instructionFactory = this.parsingContext.getInstructionFactory();
         if (instructionFactory.isInstruction(startElement))
-            newEvent = instructionFactory.createInstruction(startElement,
-                    attrs, stack);
+            newEvent = instructionFactory.createInstruction(this.parsingContext, startElement, attrs, stack);
         else
             newEvent = startElement;
         stack.push(newEvent);

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/Characters.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/Characters.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/Characters.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/Characters.java Tue Sep  6 13:10:53 2005
@@ -20,6 +20,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
 import org.apache.cocoon.template.expression.Literal;
 import org.apache.cocoon.template.expression.Subst;
@@ -34,9 +35,9 @@
  * @version SVN $Id$
  */
 public class Characters extends TextEvent {
-    public Characters(Locator location, char[] chars, int start, int length)
+    public Characters(ParsingContext parsingContext, Locator location, char[] chars, int start, int length)
             throws SAXException {
-        super(location, chars, start, length);
+        super(parsingContext, location, chars, start, length);
     }
 
     public Event execute(XMLConsumer consumer,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/IgnorableWhitespace.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/IgnorableWhitespace.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/IgnorableWhitespace.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/IgnorableWhitespace.java Tue Sep  6 13:10:53 2005
@@ -17,6 +17,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.instruction.MacroContext;
 import org.apache.cocoon.xml.XMLConsumer;
 import org.xml.sax.Locator;
@@ -26,22 +27,19 @@
  * @version SVN $Id$
  */
 public class IgnorableWhitespace extends TextEvent {
-    public IgnorableWhitespace(Locator location, char[] chars, int start,
-            int length) throws SAXException {
-        super(location, chars, start, length);
+    public IgnorableWhitespace(ParsingContext parsingContext, Locator location, char[] chars, int start, int length)
+            throws SAXException {
+        super(parsingContext, location, chars, start, length);
     }
 
-    public Event execute(final XMLConsumer consumer,
-            ExpressionContext expressionContext,
-            ExecutionContext executionContext, MacroContext macroContext,
-            Event startEvent, Event endEvent) throws SAXException {
-            characters(expressionContext, executionContext, this,
-                new CharHandler() {
-                    public void characters(char[] ch, int offset, int len)
-                            throws SAXException {
-                        consumer.ignorableWhitespace(ch, offset, len);
-                    }
-                });
-            return getNext();
+    public Event execute(final XMLConsumer consumer, ExpressionContext expressionContext,
+            ExecutionContext executionContext, MacroContext macroContext, Event startEvent, Event endEvent)
+            throws SAXException {
+        characters(expressionContext, executionContext, this, new CharHandler() {
+            public void characters(char[] ch, int offset, int len) throws SAXException {
+                consumer.ignorableWhitespace(ch, offset, len);
+            }
+        });
+        return getNext();
     }
 }

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/StartElement.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/StartElement.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/StartElement.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/StartElement.java Tue Sep  6 13:10:53 2005
@@ -21,6 +21,7 @@
 
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.Substitutions;
 import org.apache.cocoon.template.instruction.MacroContext;
 import org.apache.cocoon.xml.XMLConsumer;
@@ -33,7 +34,7 @@
  * @version SVN $Id$
  */
 public class StartElement extends Event {
-    public StartElement(Locator location, String namespaceURI,
+    public StartElement(ParsingContext parsingContext, Locator location, String namespaceURI,
             String localName, String raw, Attributes attrs) throws SAXException {
         super(location);
         this.namespaceURI = namespaceURI;
@@ -47,8 +48,7 @@
             String qname = attrs.getQName(i);
             String type = attrs.getType(i);
             String value = attrs.getValue(i);
-            Substitutions substitutions = new Substitutions(getLocation(),
-                    value);
+            Substitutions substitutions = new Substitutions(parsingContext, getLocation(), value);
             if (substitutions.hasSubstitutions()) {
                 getAttributeEvents().add(
                         new SubstituteAttribute(uri, local, qname, type,

Modified: cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/TextEvent.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/TextEvent.java?rev=279084&r1=279083&r2=279084&view=diff
==============================================================================
--- cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/TextEvent.java (original)
+++ cocoon/blocks/template/trunk/java/org/apache/cocoon/template/script/event/TextEvent.java Tue Sep  6 13:10:53 2005
@@ -20,6 +20,7 @@
 import org.apache.cocoon.components.expression.ExpressionContext;
 import org.apache.cocoon.template.environment.ErrorHolder;
 import org.apache.cocoon.template.environment.ExecutionContext;
+import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
 import org.apache.cocoon.template.expression.Literal;
 import org.apache.cocoon.template.expression.Substitutions;
@@ -32,12 +33,12 @@
  * @version SVN $Id$
  */
 public class TextEvent extends Event {
-    public TextEvent(Locator location, char[] chars, int start, int length)
+    public TextEvent(ParsingContext parsingContext, Locator location, char[] chars, int start, int length)
             throws SAXException {
         super(location);
         this.raw = new char[length];
         System.arraycopy(chars, start, this.raw, 0, length);
-        this.substitutions = new Substitutions(getLocation(), chars, start, length);
+        this.substitutions = new Substitutions(parsingContext, getLocation(), chars, start, length);
     }
 
     final Substitutions substitutions;