Author: uswick
Date: Tue Jul 30 09:27:10 2013
New Revision: 1508356

URL: http://svn.apache.org/r1508356
Log:
fixing https://issues.apache.org/jira/browse/SYNAPSE-924

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java?rev=1508356&r1=1508355&r2=1508356&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
 Tue Jul 30 09:27:10 2013
@@ -188,6 +188,31 @@ public class Value {
     public boolean hasExprTypeKey() {
         return keyValue != null && keyValue.startsWith("{") && 
keyValue.endsWith("}");
     }
+    
+    public boolean hasPropertyEvaluateExpr(){
+       return keyValue != null && keyValue.contains("get-property");
+    }
+
+    public Object evalutePropertyExpression(MessageContext synCtx) {
+        SynapseXPath expr = null;
+        try {
+            expr = new SynapseXPath(this.keyValue.substring(1, 
keyValue.length() - 1));
+            for (OMNamespace aNamespaceList : namespaceList) {
+                expr.addNamespace(aNamespaceList);
+            }
+
+            String result = expr.stringValueOf(synCtx);
+            SynapseXPath expression = new SynapseXPath(result);
+            for (OMNamespace aNamespaceList : namespaceList) {
+                expression.addNamespace(aNamespaceList);
+            }
+            return expression;
+        } catch (Exception e) {
+            handleException("Can not evaluate escaped expression : " + 
expr.toString());
+        }
+        return this.expression;
+
+    }
 
     public void setNamespaces(OMElement elem){
         Iterator namespaces = elem.getNamespacesInScope();

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java?rev=1508356&r1=1508355&r2=1508356&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/template/TemplateContext.java
 Tue Jul 30 09:27:10 2013
@@ -91,6 +91,11 @@ public class TemplateContext {
         if (expression != null) {
             if (expression.getExpression() != null) {
                 if(expression.hasExprTypeKey()){
+                       if(expression.hasPropertyEvaluateExpr()){
+                               //TODO:evalute the string expression get the 
value
+                               //String evaluatedPath 
="{//m0:getQuote/m0:request}";
+                               return 
expression.evalutePropertyExpression(synCtx);
+                       }
                     return expression.getExpression();
                 } else {
                     return expression.evaluateValue(synCtx);


Reply via email to