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/02/29 00:17:29 UTC

svn commit: r632162 - in /ode/trunk: bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/ bpel-test/src/test/resources/bpel/2.0/TestAssignDate/

Author: mriou
Date: Thu Feb 28 15:17:25 2008
New Revision: 632162

URL: http://svn.apache.org/viewvc?rev=632162&view=rev
Log:
More date assignments fixes.

Modified:
    ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
    ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel

Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java?rev=632162&r1=632161&r2=632162&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java Thu Feb 28 15:17:25 2008
@@ -19,6 +19,7 @@
 
 package org.apache.ode.bpel.elang.xpath20.runtime;
 
+import net.sf.saxon.value.DateTimeValue;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.common.FaultException;
@@ -36,6 +37,7 @@
 
 import javax.xml.namespace.QName;
 import javax.xml.xpath.XPathVariableResolver;
+import java.util.Calendar;
 
 /**
  * @author mriou <mriou at apache dot org>
@@ -114,8 +116,11 @@
     private Object getSimpleContent(Node simpleNode, QName type) {
         String text = simpleNode.getTextContent();
         try {
-    		return XSTypes.toJavaObject(type,text);
-    	} catch (Exception e) { }
+    		Object jobj = XSTypes.toJavaObject(type,text);
+            // Saxon wants its own dateTime type and doesn't like Calendar or Date
+            if (jobj instanceof Calendar) return new DateTimeValue((Calendar) jobj, true);
+            else return jobj;
+        } catch (Exception e) { }
         // Elegant way failed, trying brute force
     	try {
     		return Integer.valueOf(text);

Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java?rev=632162&r1=632161&r2=632162&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java Thu Feb 28 15:17:25 2008
@@ -150,6 +150,11 @@
 
         Object date =literal.get(0);
         if (date instanceof Calendar) return (Calendar) date;
+        if (date instanceof Date) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime((Date) date);
+            return cal;
+        }
 
         try {
             return ISO8601DateParser.parseCal(date.toString());

Modified: ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel?rev=632162&r1=632161&r2=632162&view=diff
==============================================================================
--- ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel (original)
+++ ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel Thu Feb 28 15:17:25 2008
@@ -11,7 +11,8 @@
     <bpel:variable name="variable" type="xs:dateTime"/>
   </bpel:variables>
   <bpel:sequence>
-    <bpel:receive partnerLink="pool0AndPoolPlkVar" portType="this:ForPool0" operation="Task" variable="thisTaskRequestMsg" createInstance="yes" bpmn:label="Task" bpmn:id="_ZbmYUNw9Edye_tsy8V393Q"></bpel:receive>
+    <bpel:receive partnerLink="pool0AndPoolPlkVar" portType="this:ForPool0" operation="Task"
+                  variable="thisTaskRequestMsg" createInstance="yes"/>
     <bpel:assign name="init-variables-Pool">
       <bpel:copy bpmn:label="$thisTaskResponseMsg">
         <bpel:from>
@@ -22,22 +23,24 @@
         <bpel:to>$thisTaskResponseMsg.body</bpel:to>
       </bpel:copy>
       <bpel:copy bpmn:label="$variable">
-        <bpel:from>
-          <bpel:literal>2011-01-01T00:00:00Z
-          </bpel:literal>
-        </bpel:from>
+        <bpel:from>xs:dateTime("2008-01-01T00:00:00Z")</bpel:from>
         <bpel:to>$variable</bpel:to>
       </bpel:copy>
     </bpel:assign>
     <bpel:assign bpmn:label="Task" bpmn:id="_e0Xz0Nw9Edye_tsy8V393Q">
       <bpel:copy>
-        <bpel:from xmlns:xdt="http://www.w3.org/2003/11/xpath-datatypes">current-dateTime() + xdt:dayTimeDuration ("PT3S")</bpel:from>
+        <bpel:from xmlns:xdt="http://www.w3.org/2003/11/xpath-datatypes">xs:dateTime($variable) + xdt:dayTimeDuration ("P1D")</bpel:from>
         <bpel:to>$variable</bpel:to>
       </bpel:copy>
+        <bpel:copy>
+          <bpel:from xmlns:xdt="http://www.w3.org/2003/11/xpath-datatypes">$variable + xdt:dayTimeDuration ("P1D")</bpel:from>
+          <bpel:to>$variable</bpel:to>
+        </bpel:copy>
     </bpel:assign>
     <bpel:wait bpmn:label="EventIntermediateTimer" bpmn:id="_cLa0kNw9Edye_tsy8V393Q">
       <bpel:until>$variable</bpel:until>
     </bpel:wait>
-    <bpel:reply partnerLink="pool0AndPoolPlkVar" portType="this:ForPool0" operation="Task" variable="thisTaskResponseMsg" bpmn:label="Task" bpmn:id="_e0Xz0Nw9Edye_tsy8V393Q"></bpel:reply>
+    <bpel:reply partnerLink="pool0AndPoolPlkVar" portType="this:ForPool0" operation="Task"
+                variable="thisTaskResponseMsg"/>
   </bpel:sequence>
 </bpel:process>