You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by in...@apache.org on 2007/12/19 11:36:21 UTC
svn commit: r605507 - in
/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml:
FaultMediatorFactory.java HeaderMediatorFactory.java OMElementUtils.java
Author: indika
Date: Wed Dec 19 02:36:19 2007
New Revision: 605507
URL: http://svn.apache.org/viewvc?rev=605507&view=rev
Log:
commiting patch of Andreas Veithen - to allow use of NS declaration in any parent element of current element ,with in current element for header + falut mediator
Modified:
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/FaultMediatorFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/HeaderMediatorFactory.java
webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/OMElementUtils.java
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/FaultMediatorFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/FaultMediatorFactory.java?rev=605507&r1=605506&r2=605507&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/FaultMediatorFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/FaultMediatorFactory.java Wed Dec 19 02:36:19 2007
@@ -93,9 +93,13 @@
log.error(msg);
throw new SynapseException(msg);
}
- faultMediator.setFaultCodeValue(
- new QName(OMElementUtils.getNameSpaceWithPrefix(prefix, code), name, prefix));
-
+ String namespaceURI = OMElementUtils.getNameSpaceWithPrefix(prefix, code);
+ if (namespaceURI == null) {
+ String msg = "Invalid namespace prefix '" + prefix + "' in code attribute";
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+ faultMediator.setFaultCodeValue(new QName(namespaceURI, name, prefix));
} else if (expression != null) {
try {
AXIOMXPath xp = new AXIOMXPath(expression.getAttributeValue());
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/HeaderMediatorFactory.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/HeaderMediatorFactory.java?rev=605507&r1=605506&r2=605507&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/HeaderMediatorFactory.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/HeaderMediatorFactory.java Wed Dec 19 02:36:19 2007
@@ -21,7 +21,6 @@
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.xpath.AXIOMXPath;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -31,7 +30,6 @@
import org.jaxen.JaxenException;
import javax.xml.namespace.QName;
-import java.util.Iterator;
/**
* This builds a Header Mediator parsing the XML configuration supplied
@@ -69,13 +67,13 @@
if (colonPos != -1) {
// has a NS prefix.. find it and the NS it maps into
String prefix = nameAtt.substring(0, colonPos);
- Iterator it = elem.getAllDeclaredNamespaces();
- while (it.hasNext()) {
- OMNamespace n = (OMNamespace) it.next();
- if (prefix.equals(n.getPrefix())) {
- headerMediator.setQName(
- new QName(n.getNamespaceURI(), nameAtt.substring(colonPos+1), prefix));
- }
+ String namespaceURI = OMElementUtils.getNameSpaceWithPrefix(prefix, elem);
+ if (namespaceURI == null) {
+ String msg = "Invalid namespace prefix '" + prefix + "' in name attribute";
+ log.error(msg);
+ throw new SynapseException(msg);
+ } else {
+ headerMediator.setQName(new QName(namespaceURI, nameAtt.substring(colonPos+1), prefix));
}
} else {
// no prefix
Modified: webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/OMElementUtils.java
URL: http://svn.apache.org/viewvc/webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/OMElementUtils.java?rev=605507&r1=605506&r2=605507&view=diff
==============================================================================
--- webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/OMElementUtils.java (original)
+++ webservices/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/OMElementUtils.java Wed Dec 19 02:36:19 2007
@@ -51,15 +51,23 @@
log.warn("Searching for null NS prefix and/or using null OMElement");
return null;
}
-
- Iterator iter = elem.getAllDeclaredNamespaces();
- while (iter.hasNext()) {
- OMNamespace ns = (OMNamespace) iter.next();
- if (prefix.equals(ns.getPrefix())) {
- return ns.getNamespaceURI();
+
+ OMElement currentElem = elem;
+ while (true) {
+ Iterator iter = currentElem.getAllDeclaredNamespaces();
+ while (iter.hasNext()) {
+ OMNamespace ns = (OMNamespace) iter.next();
+ if (prefix.equals(ns.getPrefix())) {
+ return ns.getNamespaceURI();
+ }
+ }
+ OMContainer parent = currentElem.getParent();
+ if (parent != null && parent instanceof OMElement) {
+ currentElem = (OMElement)parent;
+ } else {
+ return null;
}
}
- return null;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org