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 2007/09/28 05:16:05 UTC
svn commit: r580203 - in /ode/trunk:
bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
utils/src/main/java/org/apache/ode/utils/DOMUtils.java
Author: mriou
Date: Thu Sep 27 20:16:04 2007
New Revision: 580203
URL: http://svn.apache.org/viewvc?rev=580203&view=rev
Log:
ODE-188 copies the missing namespace declarations from the context.
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
ode/trunk/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java?rev=580203&r1=580202&r2=580203&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java Thu Sep 27 20:16:04 2007
@@ -467,8 +467,7 @@
return (lval == ptr) ? replacement : lval;
}
- Element replacement = doc.createElementNS(ptr.getNamespaceURI(), ptr
- .getLocalName());
+ Element replacement = doc.createElementNS(ptr.getNamespaceURI(), ptr.getLocalName());
NodeList nl = src.getChildNodes();
for (int i = 0; i < nl.getLength(); ++i)
replacement.appendChild(doc.importNode(nl.item(i), true));
@@ -476,6 +475,8 @@
for (int i = 0; i < attrs.getLength(); ++i)
replacement.setAttributeNodeNS((Attr)doc.importNode(attrs.item(i), true));
parent.replaceChild(replacement, ptr);
+ DOMUtils.copyNSContext(ptr, replacement);
+
return (lval == ptr) ? replacement : lval;
}
Modified: ode/trunk/utils/src/main/java/org/apache/ode/utils/DOMUtils.java
URL: http://svn.apache.org/viewvc/ode/trunk/utils/src/main/java/org/apache/ode/utils/DOMUtils.java?rev=580203&r1=580202&r2=580203&view=diff
==============================================================================
--- ode/trunk/utils/src/main/java/org/apache/ode/utils/DOMUtils.java (original)
+++ ode/trunk/utils/src/main/java/org/apache/ode/utils/DOMUtils.java Thu Sep 27 20:16:04 2007
@@ -111,6 +111,9 @@
return sRet;
}
+ /**
+ * @deprecated relies on XMLSerializer which is a deprecated Xerces class, use domToString instead
+ */
static public String prettyPrint(Element e) throws IOException {
OutputFormat format = new OutputFormat(e.getOwnerDocument());
format.setLineWidth(65);
@@ -793,7 +796,24 @@
domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", uri);
else
domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, uri);
+ }
+ }
+ public static void copyNSContext(Element source, Element dest) {
+ Map<String, String> sourceNS = getParentNamespaces(source);
+ sourceNS.putAll(getMyNamespaces(source));
+ Map<String, String> destNS = getParentNamespaces(dest);
+ destNS.putAll(getMyNamespaces(dest));
+ // (source - dest) to avoid adding twice the same ns on dest
+ for (String pr : destNS.keySet()) sourceNS.remove(pr);
+
+ for (Map.Entry<String, String> entry : sourceNS.entrySet()) {
+ String prefix = entry.getKey();
+ String uri = entry.getValue();
+ if (prefix == null || "".equals(prefix))
+ dest.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", uri);
+ else
+ dest.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, uri);
}
}