Author: mriou
Date: Thu Feb 28 15:12:36 2008
New Revision: 632157

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

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

Modified: 
ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java?rev=632157&r1=632156&r2=632157&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
 Thu Feb 28 15:12:36 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/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java?rev=632157&r1=632156&r2=632157&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.1/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
 Thu Feb 28 15:12:36 2008
@@ -151,6 +151,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/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel?rev=632157&r1=632156&r2=632157&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel
 (original)
+++ 
ode/branches/APACHE_ODE_1.1/bpel-test/src/test/resources/bpel/2.0/TestAssignDate/NewDiagram-Pool.bpel
 Thu Feb 28 15:12:36 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>


Reply via email to