You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by va...@apache.org on 2013/05/22 10:31:43 UTC
[1/2] git commit: Karolis Petrauskas' patch for ODE-664 applied. Some
testcases fixed accordingly.
Updated Branches:
refs/heads/jackson [created] 4846c85c9
refs/heads/master a525262f2 -> 5b052ce9f
refs/heads/ode-1.3.6.x 4891521ea -> ce94ea8f7
Karolis Petrauskas' patch for ODE-664 applied.
Some testcases fixed accordingly.
Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/5b052ce9
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/5b052ce9
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/5b052ce9
Branch: refs/heads/master
Commit: 5b052ce9f0c55b80b5b41d3d6f410c2b0d95c402
Parents: a525262
Author: Tammo van Lessen <tv...@gmail.com>
Authored: Wed May 22 10:10:25 2013 +0200
Committer: Tammo van Lessen <tv...@gmail.com>
Committed: Wed May 22 10:11:59 2013 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/ode/il/OMUtils.java | 30 ++++++++++++++-
.../java/org/apache/ode/bpel/runtime/ASSIGN.java | 29 +++++++++-----
.../bpel/2.0/ExtVar-GenKey/test.properties | 2 +-
.../2.0/TestInsertMissingData/test1.properties | 2 +-
.../bpel/2.0/TestSubTreeAssign/test1.properties | 2 +-
.../bpel/2.0/TestXPathNamespace1/test1.properties | 2 +-
.../main/java/org/apache/ode/utils/DOMUtils.java | 25 ++++++++++++
7 files changed, 75 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
----------------------------------------------------------------------
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
index 6e103bf..8b6db87 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
@@ -35,6 +35,8 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMText;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.NSContext;
import org.w3c.dom.Attr;
@@ -52,6 +54,8 @@ import org.xml.sax.InputSource;
*/
public class OMUtils {
+ private static Log __log = LogFactory.getLog(OMUtils.class);
+
public static OMElement getFirstChildWithName(OMElement parent, String name) {
if (parent == null)
throw new IllegalArgumentException("null parent");
@@ -74,12 +78,32 @@ public class OMUtils {
@SuppressWarnings("unchecked")
public static Element toDOM(OMElement element, Document doc, boolean deepNS) {
- final Element domElement = doc.createElementNS(element.getQName().getNamespaceURI(), element.getQName().getLocalPart());
+ //
+ // Fix regarding lost qnames on response of invoke activity:
+ // * copy an element including its prefix.
+ // * add all namespase attributes.
+ //
+ String domElementNsUri = element.getQName().getNamespaceURI();
+ String domElementQName;
+ if (element.getQName().getPrefix() == null || element.getQName().getPrefix().trim().length() == 0) {
+ domElementQName = element.getQName().getLocalPart();
+ } else {
+ domElementQName = element.getQName().getPrefix() + ":" + element.getQName().getLocalPart();
+ }
+ if (__log.isTraceEnabled())
+ __log.trace("toDOM: creating element with nsUri=" + domElementNsUri
+ + " qname=" + domElementQName
+ + " from omElement, name=" + element.getLocalName());
+
+ final Element domElement = doc.createElementNS(
+ domElementNsUri,
+ domElementQName);
+
if (deepNS) {
NSContext nscontext = new NSContext();
buildNScontext(nscontext, element);
- DOMUtils.injectNamespaces(domElement,nscontext);
+ DOMUtils.injectNamespacesWithAllPrefixes(domElement,nscontext);
} else {
if (element.getAllDeclaredNamespaces() != null) {
for (Iterator<OMNamespace> i = element.getAllDeclaredNamespaces(); i.hasNext(); ) {
@@ -92,6 +116,8 @@ public class OMUtils {
}
}
+ if (__log.isTraceEnabled())
+ __log.trace("toDOM: created root element (deepNS=" + deepNS + "): " + DOMUtils.domToString(domElement));
for (Iterator i = element.getAllAttributes(); i.hasNext();) {
final OMAttribute attr = (OMAttribute) i.next();
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
index af95ad9..3c22630 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
@@ -60,6 +60,7 @@ import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
* Assign activity run-time template.
@@ -222,6 +223,22 @@ class ASSIGN extends ACTIVITY {
OExpression expr = ((OAssign.Expression) from).expression;
try {
l = getBpelRuntimeContext().getExpLangRuntime().evaluate(expr, getEvaluationContext());
+ if (l.size() == 0 || l.get(0) == null || !(l.get(0) instanceof Element)) {
+ if (__log.isTraceEnabled()) {
+ __log.trace("evalRValue: OAssign.Expression: eval reult not Element or node=null");
+ }
+ } else {
+ Element element = (Element)l.get(0);
+ for (Map.Entry<String, String> entry : DOMUtils.getMyNSContext(element).toMap().entrySet()) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ if (entry.getKey() == null || entry.getKey().length() == 0) {
+ element.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", value);
+ } else {
+ element.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:" + key, value);
+ }
+ }
+ }
} catch (EvaluationException e) {
String msg = __msgs.msgEvalException(from.toString(), e.getMessage());
if (__log.isDebugEnabled()) __log.debug(from + ": " + msg);
@@ -504,17 +521,7 @@ class ASSIGN extends ACTIVITY {
NamedNodeMap attrs = src.getAttributes();
for (int i = 0; i < attrs.getLength(); ++i) {
Attr attr = (Attr)attrs.item(i);
- if (!attr.getName().startsWith("xmlns")) {
- replacement.setAttributeNodeNS((Attr)doc.importNode(attrs.item(i), true));
- // Case of qualified attribute values, we're forced to add corresponding namespace declaration manually
- int colonIdx = attr.getValue().indexOf(":");
- if (colonIdx > 0) {
- String prefix = attr.getValue().substring(0, colonIdx);
- String attrValNs = src.lookupPrefix(prefix);
- if (attrValNs != null)
- replacement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, attrValNs);
- }
- }
+ replacement.setAttributeNodeNS((Attr)doc.importNode(attr, true));
}
parent.replaceChild(replacement, ptr);
DOMUtils.copyNSContext(ptr, replacement);
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties b/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
index fa819a7..e5b57dc 100644
--- a/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
@@ -19,5 +19,5 @@ namespace=http://example.com/process/ExtVar/GenKey
service=TestService
operation=Start
request1=<message><body><tns:StartRequest xmlns:tns="http://example.com/process/ExtVar/GenKey">foo</tns:StartRequest></body></message>
-response1=.*><this:keyString xmlns:this="http://example.com/process/ExtVar/GenKey">1</this:keyString><this:stringCol xmlns:this="http://example.com/process/ExtVar/GenKey">foo</this:stringCol>.*
+response1=.*xmlns:this="http://example.com/process/ExtVar/GenKey" xmlns:tns="http://example.com/process/ExtVar/GenKey"><this:keyString>1</this:keyString><this:stringCol>foo</this:stringCol>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
index c0de3b4..7a92158 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestInsertMissingData.wsdl
service=TestInsertMissingDataService
operation=request
request1=<message><requestMessageData><ens:aTestMessage xmlns:ens="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types"><requestID>Start InsertMissingData</requestID><requestText>Event InsertMissingData</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types"><foo:indicatorOne>fail</foo:indicatorOne><foo:indicatorTwo>fail</foo:indicatorTwo></typeIndicators></ens:aTestMessage></requestMessageData></message>
-response1=.*<replyID>Start InsertMissingData</replyID><replyText>pass</replyText>.*
+response1=.*<replyID xmlns:ens="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types">Start InsertMissingData</replyID><replyText>pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
index fa47211..64d8a4f 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestSubTreeAssign.wsdl
service=TestSubTreeAssignService
operation=request
request1=<message><requestMessageData><ens:aTestMessage xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types"><requestID>Start SubTreeAssign</requestID><requestText>Event SubTreeAssign</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types"><foo:indicatorOne>fail</foo:indicatorOne><foo:indicatorTwo>fail</foo:indicatorTwo></typeIndicators></ens:aTestMessage></requestMessageData></message>
-response1=.*<replyID>Start SubTreeAssign</replyID><replyText>pass</replyText>.*
+response1=.*<replyID xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types">Start SubTreeAssign</replyID><replyText xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types" xmlns:foo="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types">pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
index 9faff4d..bc4f69d 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestXPathNamespace1.wsdl
service=TestXPathNamespace1Service
operation=request
request1=<message><requestMessageData><requestID>Start TestXPathNamespace1</requestID><requestText>Event TestXPathNamespace1</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestXPathNamespace1.wsdl.footypes"><foo:indicatorOne>pass</foo:indicatorOne><foo:indicatorTwo>pass</foo:indicatorTwo></typeIndicators></requestMessageData></message>
-response1=.*<replyID>Start TestXPathNamespace1</replyID><replyText>pass</replyText>.*
+response1=.*<replyID>Start TestXPathNamespace1</replyID><replyText xmlns:foo="http://ode/bpel/unit-test/TestXPathNamespace1.wsdl.footypes">pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/5b052ce9/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
index 9b3aeac..c2a795d 100644
--- a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
+++ b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
@@ -845,6 +845,31 @@ public class DOMUtils {
}
}
+ /**
+ * Adds namespaces including all prefixes.
+ * This is needed for correct handling of xsi:type attributes.
+ * @param domElement An element wi which the namespace attributes should be added.
+ * @param nscontext A namespace context.
+ * @author k.petrauskas
+ */
+ public static void injectNamespacesWithAllPrefixes(Element domElement, NSContext nscontext) {
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: element=" + domToString(domElement) + " nscontext=" + nscontext);
+ for (Map.Entry<String, String> entry : nscontext.toMap().entrySet()) {
+ String prefix = entry.getKey();
+ String uri = entry.getValue();
+ if (prefix == null || "".equals(prefix))
+ domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", uri);
+ else
+ domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, uri);
+
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: added namespace: prefix=\"" + prefix + "\" uri=\"" + uri + "\"");
+ }
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: result: element=" + domToString(domElement));
+ }
+
public static void copyNSContext(Element source, Element dest) {
Map<String, String> sourceNS = getParentNamespaces(source);
sourceNS.putAll(getMyNamespaces(source));
[2/2] git commit: Karolis Petrauskas' patch for ODE-664 applied. Some
testcases fixed accordingly.
Posted by va...@apache.org.
Karolis Petrauskas' patch for ODE-664 applied.
Some testcases fixed accordingly.
Project: http://git-wip-us.apache.org/repos/asf/ode/repo
Commit: http://git-wip-us.apache.org/repos/asf/ode/commit/ce94ea8f
Tree: http://git-wip-us.apache.org/repos/asf/ode/tree/ce94ea8f
Diff: http://git-wip-us.apache.org/repos/asf/ode/diff/ce94ea8f
Branch: refs/heads/ode-1.3.6.x
Commit: ce94ea8f7f98551185df169c6960963023b18735
Parents: 4891521
Author: Tammo van Lessen <tv...@gmail.com>
Authored: Wed May 22 10:10:25 2013 +0200
Committer: Tammo van Lessen <tv...@gmail.com>
Committed: Wed May 22 10:31:13 2013 +0200
----------------------------------------------------------------------
.../src/main/java/org/apache/ode/il/OMUtils.java | 30 ++++++++++++++-
.../java/org/apache/ode/bpel/runtime/ASSIGN.java | 29 +++++++++-----
.../bpel/2.0/ExtVar-GenKey/test.properties | 2 +-
.../2.0/TestInsertMissingData/test1.properties | 2 +-
.../bpel/2.0/TestSubTreeAssign/test1.properties | 2 +-
.../bpel/2.0/TestXPathNamespace1/test1.properties | 2 +-
.../main/java/org/apache/ode/utils/DOMUtils.java | 25 ++++++++++++
7 files changed, 75 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
----------------------------------------------------------------------
diff --git a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
index 1a20bda..0f238b1 100644
--- a/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
+++ b/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
@@ -35,6 +35,8 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMText;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.NSContext;
import org.w3c.dom.Attr;
@@ -52,6 +54,8 @@ import org.xml.sax.InputSource;
*/
public class OMUtils {
+ private static Log __log = LogFactory.getLog(OMUtils.class);
+
public static OMElement getFirstChildWithName(OMElement parent, String name) {
if (parent == null)
throw new IllegalArgumentException("null parent");
@@ -74,12 +78,32 @@ public class OMUtils {
@SuppressWarnings("unchecked")
public static Element toDOM(OMElement element, Document doc, boolean deepNS) {
- final Element domElement = doc.createElementNS(element.getQName().getNamespaceURI(), element.getQName().getLocalPart());
+ //
+ // Fix regarding lost qnames on response of invoke activity:
+ // * copy an element including its prefix.
+ // * add all namespase attributes.
+ //
+ String domElementNsUri = element.getQName().getNamespaceURI();
+ String domElementQName;
+ if (element.getQName().getPrefix() == null || element.getQName().getPrefix().trim().length() == 0) {
+ domElementQName = element.getQName().getLocalPart();
+ } else {
+ domElementQName = element.getQName().getPrefix() + ":" + element.getQName().getLocalPart();
+ }
+ if (__log.isTraceEnabled())
+ __log.trace("toDOM: creating element with nsUri=" + domElementNsUri
+ + " qname=" + domElementQName
+ + " from omElement, name=" + element.getLocalName());
+
+ final Element domElement = doc.createElementNS(
+ domElementNsUri,
+ domElementQName);
+
if (deepNS) {
NSContext nscontext = new NSContext();
buildNScontext(nscontext, element);
- DOMUtils.injectNamespaces(domElement,nscontext);
+ DOMUtils.injectNamespacesWithAllPrefixes(domElement,nscontext);
} else {
if (element.getAllDeclaredNamespaces() != null) {
for (Iterator<OMNamespace> i = element.getAllDeclaredNamespaces(); i.hasNext(); ) {
@@ -92,6 +116,8 @@ public class OMUtils {
}
}
+ if (__log.isTraceEnabled())
+ __log.trace("toDOM: created root element (deepNS=" + deepNS + "): " + DOMUtils.domToString(domElement));
for (Iterator i = element.getAllAttributes(); i.hasNext();) {
final OMAttribute attr = (OMAttribute) i.next();
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
----------------------------------------------------------------------
diff --git a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
index 3a50599..d2a69e5 100644
--- a/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
+++ b/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
@@ -60,6 +60,7 @@ import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Map;
/**
* Assign activity run-time template.
@@ -222,6 +223,22 @@ class ASSIGN extends ACTIVITY {
OExpression expr = ((OAssign.Expression) from).expression;
try {
l = getBpelRuntimeContext().getExpLangRuntime().evaluate(expr, getEvaluationContext());
+ if (l.size() == 0 || l.get(0) == null || !(l.get(0) instanceof Element)) {
+ if (__log.isTraceEnabled()) {
+ __log.trace("evalRValue: OAssign.Expression: eval reult not Element or node=null");
+ }
+ } else {
+ Element element = (Element)l.get(0);
+ for (Map.Entry<String, String> entry : DOMUtils.getMyNSContext(element).toMap().entrySet()) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ if (entry.getKey() == null || entry.getKey().length() == 0) {
+ element.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", value);
+ } else {
+ element.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:" + key, value);
+ }
+ }
+ }
} catch (EvaluationException e) {
String msg = __msgs.msgEvalException(from.toString(), e.getMessage());
if (__log.isDebugEnabled()) __log.debug(from + ": " + msg);
@@ -504,17 +521,7 @@ class ASSIGN extends ACTIVITY {
NamedNodeMap attrs = src.getAttributes();
for (int i = 0; i < attrs.getLength(); ++i) {
Attr attr = (Attr)attrs.item(i);
- if (!attr.getName().startsWith("xmlns")) {
- replacement.setAttributeNodeNS((Attr)doc.importNode(attrs.item(i), true));
- // Case of qualified attribute values, we're forced to add corresponding namespace declaration manually
- int colonIdx = attr.getValue().indexOf(":");
- if (colonIdx > 0) {
- String prefix = attr.getValue().substring(0, colonIdx);
- String attrValNs = src.lookupPrefix(prefix);
- if (attrValNs != null)
- replacement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, attrValNs);
- }
- }
+ replacement.setAttributeNodeNS((Attr)doc.importNode(attr, true));
}
parent.replaceChild(replacement, ptr);
DOMUtils.copyNSContext(ptr, replacement);
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties b/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
index fa819a7..e5b57dc 100644
--- a/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/ExtVar-GenKey/test.properties
@@ -19,5 +19,5 @@ namespace=http://example.com/process/ExtVar/GenKey
service=TestService
operation=Start
request1=<message><body><tns:StartRequest xmlns:tns="http://example.com/process/ExtVar/GenKey">foo</tns:StartRequest></body></message>
-response1=.*><this:keyString xmlns:this="http://example.com/process/ExtVar/GenKey">1</this:keyString><this:stringCol xmlns:this="http://example.com/process/ExtVar/GenKey">foo</this:stringCol>.*
+response1=.*xmlns:this="http://example.com/process/ExtVar/GenKey" xmlns:tns="http://example.com/process/ExtVar/GenKey"><this:keyString>1</this:keyString><this:stringCol>foo</this:stringCol>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
index c0de3b4..7a92158 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestInsertMissingData/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestInsertMissingData.wsdl
service=TestInsertMissingDataService
operation=request
request1=<message><requestMessageData><ens:aTestMessage xmlns:ens="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types"><requestID>Start InsertMissingData</requestID><requestText>Event InsertMissingData</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types"><foo:indicatorOne>fail</foo:indicatorOne><foo:indicatorTwo>fail</foo:indicatorTwo></typeIndicators></ens:aTestMessage></requestMessageData></message>
-response1=.*<replyID>Start InsertMissingData</replyID><replyText>pass</replyText>.*
+response1=.*<replyID xmlns:ens="http://ode/bpel/unit-test/TestInsertMissingData.wsdl.types">Start InsertMissingData</replyID><replyText>pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
index fa47211..64d8a4f 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestSubTreeAssign/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestSubTreeAssign.wsdl
service=TestSubTreeAssignService
operation=request
request1=<message><requestMessageData><ens:aTestMessage xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types"><requestID>Start SubTreeAssign</requestID><requestText>Event SubTreeAssign</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types"><foo:indicatorOne>fail</foo:indicatorOne><foo:indicatorTwo>fail</foo:indicatorTwo></typeIndicators></ens:aTestMessage></requestMessageData></message>
-response1=.*<replyID>Start SubTreeAssign</replyID><replyText>pass</replyText>.*
+response1=.*<replyID xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types">Start SubTreeAssign</replyID><replyText xmlns:ens="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types" xmlns:foo="http://ode/bpel/unit-test/TestSubTreeAssign.wsdl.types">pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
----------------------------------------------------------------------
diff --git a/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties b/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
index 9faff4d..bc4f69d 100644
--- a/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
+++ b/bpel-test/src/test/resources/bpel/2.0/TestXPathNamespace1/test1.properties
@@ -19,4 +19,4 @@ namespace=http://ode/bpel/unit-test/TestXPathNamespace1.wsdl
service=TestXPathNamespace1Service
operation=request
request1=<message><requestMessageData><requestID>Start TestXPathNamespace1</requestID><requestText>Event TestXPathNamespace1</requestText><typeIndicators xmlns:foo="http://ode/bpel/unit-test/TestXPathNamespace1.wsdl.footypes"><foo:indicatorOne>pass</foo:indicatorOne><foo:indicatorTwo>pass</foo:indicatorTwo></typeIndicators></requestMessageData></message>
-response1=.*<replyID>Start TestXPathNamespace1</replyID><replyText>pass</replyText>.*
+response1=.*<replyID>Start TestXPathNamespace1</replyID><replyText xmlns:foo="http://ode/bpel/unit-test/TestXPathNamespace1.wsdl.footypes">pass</replyText>.*
http://git-wip-us.apache.org/repos/asf/ode/blob/ce94ea8f/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
index 58bb2d2..a9d30de 100644
--- a/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
+++ b/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
@@ -837,6 +837,31 @@ public class DOMUtils {
}
}
+ /**
+ * Adds namespaces including all prefixes.
+ * This is needed for correct handling of xsi:type attributes.
+ * @param domElement An element wi which the namespace attributes should be added.
+ * @param nscontext A namespace context.
+ * @author k.petrauskas
+ */
+ public static void injectNamespacesWithAllPrefixes(Element domElement, NSContext nscontext) {
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: element=" + domToString(domElement) + " nscontext=" + nscontext);
+ for (Map.Entry<String, String> entry : nscontext.toMap().entrySet()) {
+ String prefix = entry.getKey();
+ String uri = entry.getValue();
+ if (prefix == null || "".equals(prefix))
+ domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", uri);
+ else
+ domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, uri);
+
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: added namespace: prefix=\"" + prefix + "\" uri=\"" + uri + "\"");
+ }
+ if (__log.isDebugEnabled())
+ __log.debug("injectNamespacesWithAllPrefixes: result: element=" + domToString(domElement));
+ }
+
public static void copyNSContext(Element source, Element dest) {
Map<String, String> sourceNS = getParentNamespaces(source);
sourceNS.putAll(getMyNamespaces(source));