You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/10/14 20:39:15 UTC

svn commit: r704600 - /ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java

Author: mriou
Date: Tue Oct 14 11:39:15 2008
New Revision: 704600

URL: http://svn.apache.org/viewvc?rev=704600&view=rev
Log:
Makes BPEL properties readable like any other variable.

Modified:
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java

Modified: ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java?rev=704600&r1=704599&r2=704600&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java (original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java Tue Oct 14 11:39:15 2008
@@ -24,10 +24,13 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.evt.ScopeEvent;
 import org.apache.ode.bpel.evt.VariableReadEvent;
+import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.Document;
 
 /**
  * The context in which BPEL expressions are evaluated. This class is handed of the OExpression
@@ -68,6 +71,13 @@
         Node ret;
         if (variable.type instanceof OConstantVarType) {
             ret = ((OConstantVarType) variable.type).getValue();
+        } else if (variable.type instanceof OPropertyVarType) {
+            CorrelationSetInstance set = _scopeInstance.resolve(variable.name);
+            CorrelationKey key = _native.readCorrelation(set);
+            if (key == null) return null;
+            String keyValue = key.getValues()[0];
+            Document doc = DOMUtils.newDocument();
+            ret = doc.createTextNode(keyValue);
         } else {
             VariableInstance varInstance = _scopeInstance.resolve(variable);
             if (varInstance == null)