You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2011/12/18 12:05:32 UTC
svn commit: r1220363 - in /webservices/commons/trunk/modules/axiom/modules:
axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/
axiom-api/src/test/resources/soap/soap11/
axiom-api/src/test/resources/soap/soap12/ axiom-testsuite/src/main/java/or...
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