Author: dkulp
Date: Mon Jan 26 16:34:33 2009
New Revision: 737737
URL: http://svn.apache.org/viewvc?rev=737737&view=rev
Log:
Merged revisions 737498 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r737498 | cschneider | 2009-01-25 05:46:25 -0500 (Sun, 25 Jan 2009) | 1 line
CXF-2003 avoid comparing a namespace of null with a namespace of ""
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/DOMUtils.java
cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpAuthSupplier.java
(props changed)
cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpAuthSupplierBeanDefinitionParser.java
(props changed)
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Jan 26 16:34:33 2009
@@ -1 +1 @@
-/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450,
732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736332,736343,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736,736738-736739,736766,736825,736852,737032,737046,737061,737069,737124,737237,737246,737299,737356,737494
+/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450,
732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736332,736343,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736,736738-736739,736766,736825,736852,737032,737046,737061,737069,737124,737237,737246,737299,737356,737494,737498
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/DOMUtils.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/DOMUtils.java?rev=737737&r1=737736&r2=737737&view=diff
==============================================================================
---
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/DOMUtils.java
(original)
+++
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/DOMUtils.java
Mon Jan 26 16:34:33 2009
@@ -54,8 +54,7 @@
import org.apache.cxf.common.util.StringUtils;
/**
- * Few simple utils to read DOM. This is originally from the Jakarta Commons
- * Modeler.
+ * Few simple utils to read DOM. This is originally from the Jakarta Commons
Modeler.
*
* @author Costin Manolache
*/
@@ -66,7 +65,7 @@
private DOMUtils() {
}
-
+
private static synchronized DocumentBuilder getBuilder() throws
ParserConfigurationException {
if (builder == null) {
FACTORY.setNamespaceAware(true);
@@ -74,9 +73,10 @@
}
return builder;
}
-
+
/**
* This function is much like getAttribute, but returns null, not "", for
a nonexistent attribute.
+ *
* @param e
* @param attributeName
* @return
@@ -88,8 +88,7 @@
}
return node.getValue();
}
-
-
+
/**
* Get the trimmed text content of a node or null if there is no text
*/
@@ -97,13 +96,13 @@
if (n == null) {
return null;
}
-
+
Node n1 = DOMUtils.getChild(n, Node.TEXT_NODE);
if (n1 == null) {
return null;
}
-
+
return n1.getNodeValue().trim();
}
@@ -114,16 +113,16 @@
if (n == null) {
return null;
}
-
+
Node n1 = DOMUtils.getChild(n, Node.TEXT_NODE);
if (n1 == null) {
return null;
}
-
+
return n1.getNodeValue();
}
-
+
/**
* Get the first element child.
*
@@ -134,7 +133,7 @@
if (parent == null) {
return null;
}
-
+
Node first = parent.getFirstChild();
if (first == null) {
return null;
@@ -167,6 +166,7 @@
}
return attN.getNodeValue();
}
+
public static String getAttribute(Element element, QName attName) {
return element.getAttributeNS(attName.getNamespaceURI(),
attName.getLocalPart());
}
@@ -239,10 +239,11 @@
}
return null;
}
-
+
public static QName getElementQName(Element el) {
return new QName(el.getNamespaceURI(), el.getLocalName());
}
+
/**
* Get the first direct child with a given type
*/
@@ -254,8 +255,9 @@
if (n == null) {
return null;
}
- return (Element) n;
+ return (Element)n;
}
+
public static Element getNextElement(Element el) {
Node nd = el.getNextSibling();
while (nd != null) {
@@ -266,31 +268,33 @@
}
return null;
}
-
+
/**
* Return the first element child with the specified qualified name.
+ *
* @param parent
* @param q
* @return
*/
- public static Element getFirstChildWithName(Element parent, QName q) {
+ public static Element getFirstChildWithName(Element parent, QName q) {
String ns = q.getNamespaceURI();
String lp = q.getLocalPart();
return getFirstChildWithName(parent, ns, lp);
}
-
+
/**
* Return the first element child with the specified qualified name.
+ *
* @param parent
* @param ns
* @param lp
* @return
*/
- public static Element getFirstChildWithName(Element parent, String ns,
String lp) {
+ public static Element getFirstChildWithName(Element parent, String ns,
String lp) {
for (Node n = parent.getFirstChild(); n != null; n =
n.getNextSibling()) {
if (n instanceof Element) {
- Element e = (Element) n;
- String ens = e.getNamespaceURI();
+ Element e = (Element)n;
+ String ens = (e.getNamespaceURI() == null) ? "" :
e.getNamespaceURI();
if (ns.equals(ens) && lp.equals(e.getLocalName())) {
return e;
}
@@ -301,6 +305,7 @@
/**
* Return child elements with specified name.
+ *
* @param parent
* @param ns
* @param localName
@@ -310,7 +315,7 @@
List<Element> r = new ArrayList<Element>();
for (Node n = parent.getFirstChild(); n != null; n =
n.getNextSibling()) {
if (n instanceof Element) {
- Element e = (Element) n;
+ Element e = (Element)n;
String eNs = (e.getNamespaceURI() == null) ? "" :
e.getNamespaceURI();
if (ns.equals(eNs) && localName.equals(e.getLocalName())) {
r.add(e);
@@ -322,6 +327,7 @@
/**
* Get the first child of the specified type.
+ *
* @param parent
* @param type
* @return
@@ -354,7 +360,7 @@
if (first == null) {
return null;
}
-
+
for (Node node = first; node != null; node = node.getNextSibling()) {
if (type >= 0 && node.getNodeType() != type) {
@@ -399,47 +405,48 @@
return db.parse(is);
}
- public static Document readXml(Reader is) throws SAXException, IOException,
- ParserConfigurationException {
+
+ public static Document readXml(Reader is) throws SAXException,
IOException, ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-
+
dbf.setValidating(false);
dbf.setIgnoringComments(false);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
// dbf.setCoalescing(true);
// dbf.setExpandEntityReferences(true);
-
+
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
db.setEntityResolver(new NullResolver());
-
+
// db.setErrorHandler( new MyErrorHandler());
InputSource ips = new InputSource(is);
return db.parse(ips);
}
+
public static Document readXml(StreamSource is) throws SAXException,
IOException,
ParserConfigurationException {
-
+
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-
+
dbf.setValidating(false);
dbf.setIgnoringComments(false);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
// dbf.setCoalescing(true);
// dbf.setExpandEntityReferences(true);
-
+
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
db.setEntityResolver(new NullResolver());
-
+
// db.setErrorHandler( new MyErrorHandler());
InputSource is2 = new InputSource();
is2.setSystemId(is.getSystemId());
is2.setByteStream(is.getInputStream());
is2.setCharacterStream(is.getReader());
-
+
return db.parse(is2);
}
@@ -458,7 +465,7 @@
throw new RuntimeException("Couldn't find a DOM parser.", e);
}
}
-
+
public static Document createDocument() {
try {
return getBuilder().newDocument();
@@ -466,11 +473,11 @@
throw new RuntimeException("Couldn't find a DOM parser.", e);
}
}
-
+
public static String getPrefixRecursive(Element el, String ns) {
String prefix = getPrefix(el, ns);
if (prefix == null && el.getParentNode() instanceof Element) {
- prefix = getPrefixRecursive((Element) el.getParentNode(), ns);
+ prefix = getPrefixRecursive((Element)el.getParentNode(), ns);
}
return prefix;
}
@@ -480,16 +487,17 @@
for (int i = 0; i < atts.getLength(); i++) {
Node node = atts.item(i);
String name = node.getNodeName();
- if (ns.equals(node.getNodeValue())
- && (name != null && (XMLNAMESPACE.equals(name) ||
name.startsWith(XMLNAMESPACE + ":")))) {
+ if (ns.equals(node.getNodeValue())
+ && (name != null && (XMLNAMESPACE.equals(name) ||
name.startsWith(XMLNAMESPACE + ":")))) {
return node.getPrefix();
}
}
return null;
}
-
+
/**
* Get all prefixes defined, up to the root, for a namespace URI.
+ *
* @param element
* @param namespaceUri
* @param prefixes
@@ -501,9 +509,10 @@
getPrefixesRecursive((Element)parent, namespaceUri, prefixes);
}
}
-
+
/**
* Get all prefixes defined on this element for the specified namespace.
+ *
* @param element
* @param namespaceUri
* @param prefixes
@@ -513,7 +522,7 @@
for (int i = 0; i < atts.getLength(); i++) {
Node node = atts.item(i);
String name = node.getNodeName();
- if (namespaceUri.equals(node.getNodeValue())
+ if (namespaceUri.equals(node.getNodeValue())
&& (name != null && (XMLNAMESPACE.equals(name) ||
name.startsWith(XMLNAMESPACE + ":")))) {
prefixes.add(node.getPrefix());
}
@@ -532,13 +541,21 @@
}
/**
- * Searches the given element including it's parent elements
- * for a matching namspace decleration.
- * @param el element to search for namespace definitions
+ * Starting from a node, find the namespace declaration for a prefix. for
a matching namespace
+ * declaration.
+ *
+ * @param node search up from here to search for namespace definitions
* @param searchPrefix the prefix we are searching for
* @return the namespace if found.
*/
- public static String getNamespace(Element el, String searchPrefix) {
+ public static String getNamespace(Node node, String searchPrefix) {
+
+ Element el;
+ while (!(node instanceof Element)) {
+ node = node.getParentNode();
+ }
+ el = (Element)node;
+
NamedNodeMap atts = el.getAttributes();
for (int i = 0; i < atts.getLength(); i++) {
Node currentAttribute = atts.item(i);
@@ -546,80 +563,69 @@
String currentPrefix = currentAttribute.getPrefix();
if (searchPrefix.equals(currentLocalName) &&
XMLNAMESPACE.equals(currentPrefix)) {
return currentAttribute.getNodeValue();
- } else if (StringUtils.isEmpty(searchPrefix)
- && XMLNAMESPACE.equals(currentLocalName)
- && StringUtils.isEmpty(currentPrefix)) {
+ } else if (StringUtils.isEmpty(searchPrefix) &&
XMLNAMESPACE.equals(currentLocalName)
+ && StringUtils.isEmpty(currentPrefix)) {
return currentAttribute.getNodeValue();
}
}
-
+
Node parent = el.getParentNode();
if (parent instanceof Element) {
- return getNamespace((Element) parent, searchPrefix);
+ return getNamespace((Element)parent, searchPrefix);
}
-
+
return null;
}
-
- public static List<Element> findAllElementsByTagNameNS(Element elem,
- String nameSpaceURI,
+
+ public static List<Element> findAllElementsByTagNameNS(Element elem,
String nameSpaceURI,
String localName) {
List<Element> ret = new LinkedList<Element>();
findAllElementsByTagNameNS(elem, nameSpaceURI, localName, ret);
return ret;
}
-
- private static void findAllElementsByTagNameNS(Element el,
- String nameSpaceURI,
- String localName,
- List<Element> elementList) {
-
- if (localName.equals(el.getLocalName())
- && nameSpaceURI.contains(el.getNamespaceURI())) {
+
+ private static void findAllElementsByTagNameNS(Element el, String
nameSpaceURI, String localName,
+ List<Element> elementList) {
+
+ if (localName.equals(el.getLocalName()) &&
nameSpaceURI.contains(el.getNamespaceURI())) {
elementList.add(el);
- }
+ }
Element elem = getFirstElement(el);
while (elem != null) {
findAllElementsByTagNameNS(elem, nameSpaceURI, localName,
elementList);
elem = getNextElement(elem);
}
}
-
-
-
-
+
public static List<Element> findAllElementsByTagName(Element elem, String
tagName) {
List<Element> ret = new LinkedList<Element>();
findAllElementsByTagName(elem, tagName, ret);
return ret;
}
-
+
private static void findAllElementsByTagName(Element el, String tagName,
List<Element> elementList) {
-
+
if (tagName.equals(el.getTagName())) {
elementList.add(el);
- }
+ }
Element elem = getFirstElement(el);
while (elem != null) {
findAllElementsByTagName(elem, tagName, elementList);
elem = getNextElement(elem);
}
}
-
/**
- * Set a namespace/prefix on an element if it is not set already. First
off, it
- * searches for the element for the prefix associated with the specified
- * namespace. If the prefix isn't null, then this is returned. Otherwise,
it
- * creates a new attribute using the namespace/prefix passed as parameters.
+ * Set a namespace/prefix on an element if it is not set already. First
off, it searches for the element
+ * for the prefix associated with the specified namespace. If the prefix
isn't null, then this is
+ * returned. Otherwise, it creates a new attribute using the
namespace/prefix passed as parameters.
*
* @param element
* @param namespace
* @param prefix
* @return the prefix associated with the set namespace
*/
- public static String setNamespace(Element element, String namespace,
- String prefix) {
+ public static String setNamespace(Element element, String namespace,
String prefix) {
String pre = getPrefixRecursive(element, namespace);
if (pre != null) {
return pre;
@@ -627,9 +633,10 @@
element.setAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:" +
prefix, namespace);
return prefix;
}
-
+
/**
* Add a namespace prefix definition to an element.
+ *
* @param element
* @param namespaceUri
* @param prefix
Propchange:
cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpAuthSupplier.java
('svn:mergeinfo' removed)
Propchange:
cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/spring/HttpAuthSupplierBeanDefinitionParser.java
('svn:mergeinfo' removed)