Author: veithen
Date: Sun Dec 18 11:05:32 2011
New Revision: 1220363
URL: http://svn.apache.org/viewvc?rev=1220363&view=rev
Log:
Solved another issue with default namespace processing.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml
(with props)
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java
(with props)
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/SOAPTestSuiteBuilder.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java?rev=1220363&r1=1220362&r2=1220363&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/SOAPBuilderHelper.java
Sun Dec 18 11:05:32 2011
@@ -21,7 +21,6 @@ package org.apache.axiom.soap.impl.build
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.OMElementEx;
import org.apache.axiom.om.impl.exception.OMBuilderException;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
@@ -42,27 +41,7 @@ public abstract class SOAPBuilderHelper
int elementLevel) throws
SOAPProcessingException;
protected void processNamespaceData(OMElement node, boolean
checkSOAPNamespace) {
- int namespaceCount = parser.getNamespaceCount();
- for (int i = 0; i < namespaceCount; i++) {
-
((OMElementEx)node).addNamespaceDeclaration(parser.getNamespaceURI(i),
parser.getNamespacePrefix(i));
- }
-
- // set the own namespace
- String namespaceURI = parser.getNamespaceURI();
- String prefix = parser.getPrefix();
- OMNamespace namespace = null;
- if (namespaceURI != null && namespaceURI.length() > 0) {
- if (prefix == null) {
- // this means, this elements has a default namespace or it has
inherited a default namespace from its parent
- namespace = node.findNamespace(namespaceURI, "");
- if (namespace == null) {
- namespace = node.declareNamespace(namespaceURI, "");
- }
- } else {
- namespace = node.findNamespace(namespaceURI, prefix);
- }
- node.setNamespace(namespace);
- }
+ builder.processNamespaceData(node);
// TODO we got to have this to make sure OM reject mesagess that are
not name space qualified
// But got to comment this to interop with Axis.1.x
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java?rev=1220363&r1=1220362&r2=1220363&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
Sun Dec 18 11:05:32 2011
@@ -469,6 +469,11 @@ public class StAXSOAPModelBuilder extend
return envelope != null ? envelope : getSOAPEnvelope();
}
+ // Necessary to allow SOAPBuilderHelper to access this method
+ protected void processNamespaceData(OMElement node) {
+ super.processNamespaceData(node);
+ }
+
/**
* Method processNamespaceData.
*
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml?rev=1220363&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml
Sun Dec 18 11:05:32 2011
@@ -0,0 +1,14 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Body>
+ <soapenv:Fault>
+ <faultcode>soapenv:Server</faultcode>
+ <faultstring>overflow</faultstring>
+ <detail>
+ <AddNumbersHandlerFault
xmlns="http://www.example.org/addnumbershandler">
+ <faultInfo>overflow</faultInfo>
+ <message>overflow</message>
+ </AddNumbersHandlerFault>
+ </detail>
+ </soapenv:Fault>
+ </soapenv:Body>
+</soapenv:Envelope>
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap11/fault-detail-default-namespace.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml?rev=1220363&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml
Sun Dec 18 11:05:32 2011
@@ -0,0 +1,18 @@
+<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
+ <soapenv:Body>
+ <soapenv:Fault>
+ <soapenv:Code>
+ <soapenv:Value>soapenv:Server</soapenv:Value>
+ </soapenv:Code>
+ <soapenv:Reason>
+ <soapenv:Text xml:lang="en">overflow</soapenv:Text>
+ </soapenv:Reason>
+ <soapenv:Detail>
+ <AddNumbersHandlerFault
xmlns="http://www.example.org/addnumbershandler">
+ <faultInfo>overflow</faultInfo>
+ <message>overflow</message>
+ </AddNumbersHandlerFault>
+ </soapenv:Detail>
+ </soapenv:Fault>
+ </soapenv:Body>
+</soapenv:Envelope>
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/resources/soap/soap12/fault-detail-default-namespace.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/SOAPTestSuiteBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/SOAPTestSuiteBuilder.java?rev=1220363&r1=1220362&r2=1220363&view=diff
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/SOAPTestSuiteBuilder.java
(original)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/SOAPTestSuiteBuilder.java
Sun Dec 18 11:05:32 2011
@@ -70,6 +70,7 @@ public class SOAPTestSuiteBuilder extend
addTest(new org.apache.axiom.ts.soap.fault.TestSetReason(metaFactory,
spec));
addTest(new org.apache.axiom.ts.soap.fault.TestSetRole(metaFactory,
spec));
addTest(new
org.apache.axiom.ts.soap.faultdetail.TestAddDetailEntry(metaFactory, spec));
+ addTest(new
org.apache.axiom.ts.soap.faultdetail.TestDetailEntriesUsingDefaultNamespaceWithParser(metaFactory,
spec));
addTest(new
org.apache.axiom.ts.soap.faultdetail.TestGetAllDetailEntries(metaFactory,
spec));
addTest(new
org.apache.axiom.ts.soap.faultdetail.TestGetAllDetailEntriesWithParser(metaFactory,
spec));
addTest(new
org.apache.axiom.ts.soap.faultdetail.TestSerialization(metaFactory, spec));
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java?rev=1220363&view=auto
==============================================================================
---
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java
(added)
+++
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java
Sun Dec 18 11:05:32 2011
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.ts.soap.faultdetail;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.soap.SOAPFaultDetail;
+import org.apache.axiom.ts.soap.SOAPSpec;
+import org.apache.axiom.ts.soap.SOAPTestCase;
+
+/**
+ * Tests parsing of a SOAP fault that has detail entries that use a default
namespace.
+ */
+public class TestDetailEntriesUsingDefaultNamespaceWithParser extends
SOAPTestCase {
+ public TestDetailEntriesUsingDefaultNamespaceWithParser(OMMetaFactory
metaFactory, SOAPSpec spec) {
+ super(metaFactory, spec);
+ }
+
+ protected void runTest() throws Throwable {
+ SOAPFaultDetail soapFaultDetail =
getTestMessage("fault-detail-default-namespace.xml").getBody().getFault().getDetail();
+ OMElement detailElement = soapFaultDetail.getFirstElement();
+ assertEquals("AddNumbersHandlerFault", detailElement.getLocalName());
+ OMNamespace ns = detailElement.getNamespace();
+ // At some point, there was a bug in Axiom that caused the prefix to
be null
+ assertEquals("", ns.getPrefix());
+ assertEquals("http://www.example.org/addnumbershandler",
ns.getNamespaceURI());
+ }
+}
Propchange:
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/faultdetail/TestDetailEntriesUsingDefaultNamespaceWithParser.java
------------------------------------------------------------------------------
svn:eol-style = native