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>