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 2015/09/06 21:43:42 UTC
svn commit: r1701519 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/
implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/
implementations/axiom-dom/src/main/java/org/apache/axi...
Author: veithen
Date: Sun Sep 6 19:43:42 2015
New Revision: 1701519
URL: http://svn.apache.org/r1701519
Log:
Introduce SOAP version specific subclasses for SOAPEnvelope.
Added:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java (with props)
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj (with props)
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java (with props)
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj (with props)
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java (with props)
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java (with props)
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java (with props)
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java (with props)
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPEnvelopeSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPFactorySupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPHelper.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,23 @@
+/*
+ * 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.soap.impl.common;
+
+public interface AxiomSOAP11Envelope extends AxiomSOAPEnvelope {
+
+}
Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11Envelope.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj Sun Sep 6 19:43:42 2015
@@ -0,0 +1,31 @@
+/*
+ * 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.soap.impl.common;
+
+import org.apache.axiom.core.CoreNode;
+import org.apache.axiom.om.OMNode;
+
+public aspect AxiomSOAP11EnvelopeSupport {
+ public final Class<? extends CoreNode> AxiomSOAP11Envelope.coreGetNodeClass() {
+ return AxiomSOAP11Envelope.class;
+ }
+
+ public final void AxiomSOAP11Envelope.internalCheckChild(OMNode child) {
+ }
+}
Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP11EnvelopeSupport.aj
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,23 @@
+/*
+ * 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.soap.impl.common;
+
+public interface AxiomSOAP12Envelope extends AxiomSOAPEnvelope {
+
+}
Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12Envelope.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj Sun Sep 6 19:43:42 2015
@@ -0,0 +1,42 @@
+/*
+ * 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.soap.impl.common;
+
+import org.apache.axiom.core.CoreNode;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPProcessingException;
+
+public aspect AxiomSOAP12EnvelopeSupport {
+ public final Class<? extends CoreNode> AxiomSOAP12Envelope.coreGetNodeClass() {
+ return AxiomSOAP12Envelope.class;
+ }
+
+ public final void AxiomSOAP12Envelope.internalCheckChild(OMNode child) {
+ if ((child instanceof OMElement)
+ && !(child instanceof SOAPHeader || child instanceof SOAPBody)) {
+ throw new SOAPProcessingException(
+ "SOAP Envelope can not have children other than SOAP Header and Body",
+ SOAP12Constants.FAULT_CODE_SENDER);
+ }
+ }
+}
Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAP12EnvelopeSupport.aj
------------------------------------------------------------------------------
svn:eol-style = native
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPEnvelopeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPEnvelopeSupport.aj?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPEnvelopeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPEnvelopeSupport.aj Sun Sep 6 19:43:42 2015
@@ -18,10 +18,14 @@
*/
package org.apache.axiom.soap.impl.common;
-import org.apache.axiom.core.CoreNode;
+import org.apache.axiom.om.OMNode;
public aspect AxiomSOAPEnvelopeSupport {
- public final Class<? extends CoreNode> AxiomSOAPEnvelope.coreGetNodeClass() {
- return AxiomSOAPEnvelope.class;
- }
+ /**
+ * Check that a node is allowed as a child of a SOAP envelope.
+ *
+ * @param child
+ */
+ // TODO: this should be integrated into the checkChild API
+ public abstract void AxiomSOAPEnvelope.internalCheckChild(OMNode child);
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPFactorySupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPFactorySupport.aj?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPFactorySupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/AxiomSOAPFactorySupport.aj Sun Sep 6 19:43:42 2015
@@ -91,11 +91,11 @@ public aspect AxiomSOAPFactorySupport {
}
public final SOAPEnvelope AxiomSOAPFactory.createSOAPEnvelope(OMNamespace ns) {
- return createAxiomElement(AxiomSOAPEnvelope.class, null, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, ns, null, true);
+ return createAxiomElement(getSOAPHelper().getEnvelopeClass(), null, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, ns, null, true);
}
public final SOAPEnvelope AxiomSOAPFactory.createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder) {
- return createAxiomElement(AxiomSOAPEnvelope.class, message, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, null, builder, false);
+ return createAxiomElement(getSOAPHelper().getEnvelopeClass(), message, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, null, builder, false);
}
public final SOAPHeader AxiomSOAPFactory.createSOAPHeader(SOAPEnvelope parent, OMXMLParserWrapper builder) {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPHelper.java?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPHelper.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/SOAPHelper.java Sun Sep 6 19:43:42 2015
@@ -36,6 +36,7 @@ import org.apache.axiom.soap.SOAPVersion
*/
abstract class SOAPHelper {
static final SOAPHelper SOAP11 = new SOAPHelper(SOAP11Version.getSingleton(), "SOAP 1.1",
+ AxiomSOAP11Envelope.class,
AxiomSOAP11Header.class,
AxiomSOAP11HeaderBlock.class,
AxiomSOAP11Body.class,
@@ -62,6 +63,7 @@ abstract class SOAPHelper {
};
static final SOAPHelper SOAP12 = new SOAPHelper(SOAP12Version.getSingleton(), "SOAP 1.2",
+ AxiomSOAP12Envelope.class,
AxiomSOAP12Header.class,
AxiomSOAP12HeaderBlock.class,
AxiomSOAP12Body.class,
@@ -90,6 +92,7 @@ abstract class SOAPHelper {
private final SOAPVersion version;
private final OMNamespace namespace;
private final String specName;
+ private final Class<? extends AxiomSOAPEnvelope> envelopeClass;
private final Class<? extends AxiomSOAPHeader> headerClass;
private final QName headerQName;
private final Class<? extends AxiomSOAPHeaderBlock> headerBlockClass;
@@ -106,6 +109,7 @@ abstract class SOAPHelper {
private final QName relayAttributeQName;
private SOAPHelper(SOAPVersion version, String specName,
+ Class<? extends AxiomSOAPEnvelope> envelopeClass,
Class<? extends AxiomSOAPHeader> headerClass,
Class<? extends AxiomSOAPHeaderBlock> headerBlockClass,
Class<? extends AxiomSOAPBody> bodyClass,
@@ -119,6 +123,7 @@ abstract class SOAPHelper {
namespace = new OMNamespaceImpl(version.getEnvelopeURI(),
SOAPConstants.SOAP_DEFAULT_NAMESPACE_PREFIX);
this.specName = specName;
+ this.envelopeClass = envelopeClass;
this.headerClass = headerClass;
headerQName = new QName(version.getEnvelopeURI(), SOAPConstants.HEADER_LOCAL_NAME,
SOAPConstants.SOAP_DEFAULT_NAMESPACE_PREFIX);
@@ -157,6 +162,10 @@ abstract class SOAPHelper {
return specName;
}
+ final Class<? extends AxiomSOAPEnvelope> getEnvelopeClass() {
+ return envelopeClass;
+ }
+
final Class<? extends AxiomSOAPHeader> getHeaderClass() {
return headerClass;
}
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java Sun Sep 6 19:43:42 2015
@@ -75,6 +75,7 @@ import org.apache.axiom.om.impl.dom.OMSo
import org.apache.axiom.om.impl.dom.ProcessingInstructionImpl;
import org.apache.axiom.om.impl.dom.TextImpl;
import org.apache.axiom.soap.impl.common.AxiomSOAP11Body;
+import org.apache.axiom.soap.impl.common.AxiomSOAP11Envelope;
import org.apache.axiom.soap.impl.common.AxiomSOAP11Fault;
import org.apache.axiom.soap.impl.common.AxiomSOAP11FaultCode;
import org.apache.axiom.soap.impl.common.AxiomSOAP11FaultDetail;
@@ -83,6 +84,7 @@ import org.apache.axiom.soap.impl.common
import org.apache.axiom.soap.impl.common.AxiomSOAP11Header;
import org.apache.axiom.soap.impl.common.AxiomSOAP11HeaderBlock;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Body;
+import org.apache.axiom.soap.impl.common.AxiomSOAP12Envelope;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Fault;
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultCode;
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultDetail;
@@ -94,11 +96,10 @@ import org.apache.axiom.soap.impl.common
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultValue;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Header;
import org.apache.axiom.soap.impl.common.AxiomSOAP12HeaderBlock;
-import org.apache.axiom.soap.impl.common.AxiomSOAPEnvelope;
import org.apache.axiom.soap.impl.common.AxiomSOAPMessage;
-import org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl;
import org.apache.axiom.soap.impl.dom.SOAPMessageImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11BodyImpl;
+import org.apache.axiom.soap.impl.dom.soap11.SOAP11EnvelopeImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultCodeImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultDetailImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultImpl;
@@ -107,6 +108,7 @@ import org.apache.axiom.soap.impl.dom.so
import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderImpl;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12BodyImpl;
+import org.apache.axiom.soap.impl.dom.soap12.SOAP12EnvelopeImpl;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultCodeImpl;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultDetailImpl;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12FaultImpl;
@@ -166,8 +168,10 @@ public class OMDOMFactory implements Axi
node = new OMSourcedElementImpl(this);
} else if (type == AxiomSOAPMessage.class) {
node = new SOAPMessageImpl(this);
- } else if (type == AxiomSOAPEnvelope.class) {
- node = new SOAPEnvelopeImpl(this);
+ } else if (type == AxiomSOAP11Envelope.class) {
+ node = new SOAP11EnvelopeImpl(this);
+ } else if (type == AxiomSOAP12Envelope.class) {
+ node = new SOAP12EnvelopeImpl(this);
} else if (type == AxiomSOAP11Header.class) {
node = new SOAP11HeaderImpl(this);
} else if (type == AxiomSOAP12Header.class) {
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -32,7 +32,6 @@ import org.apache.axiom.om.impl.common.s
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP11Version;
import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAP12Version;
import org.apache.axiom.soap.SOAPBody;
import org.apache.axiom.soap.SOAPConstants;
import org.apache.axiom.soap.SOAPFactory;
@@ -46,7 +45,7 @@ import org.w3c.dom.Node;
import javax.xml.namespace.QName;
-public class SOAPEnvelopeImpl extends SOAPElement implements AxiomSOAPEnvelope,
+public abstract class SOAPEnvelopeImpl extends SOAPElement implements AxiomSOAPEnvelope,
OMConstants {
public SOAPEnvelopeImpl(OMFactory factory) {
@@ -72,27 +71,8 @@ public class SOAPEnvelopeImpl extends SO
return header != null ? header : ((SOAPFactory)getOMFactory()).createSOAPHeader(this);
}
- /**
- * Check that a node is allowed as a child of a SOAP envelope.
- *
- * @param child
- */
- // TODO: this should be integrated into the checkChild API
- private void internalCheckChild(OMNode child) {
- if ((child instanceof OMElement)
- && !(child instanceof SOAPHeader || child instanceof SOAPBody)) {
- throw new SOAPProcessingException(
- "SOAP Envelope can not have children other than SOAP Header and Body",
- SOAP12Constants.FAULT_CODE_SENDER);
- }
- }
-
public void addChild(OMNode child, boolean fromBuilder) {
- // SOAP 1.1 allows for arbitrary elements after SOAPBody so do NOT check for
- // node types when appending to SOAP 1.1 envelope.
- if (getVersion() instanceof SOAP12Version) {
- internalCheckChild(child);
- }
+ internalCheckChild(child);
if (child instanceof SOAPHeader) {
// The SOAPHeader is added before the SOAPBody
Added: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java (added)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,29 @@
+/*
+ * 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.soap.impl.dom.soap11;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.impl.common.AxiomSOAP11Envelope;
+import org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl;
+
+public class SOAP11EnvelopeImpl extends SOAPEnvelopeImpl implements AxiomSOAP11Envelope {
+ public SOAP11EnvelopeImpl(OMFactory factory) {
+ super(factory);
+ }
+}
Propchange: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11EnvelopeImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java (added)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,29 @@
+/*
+ * 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.soap.impl.dom.soap12;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.impl.common.AxiomSOAP12Envelope;
+import org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl;
+
+public class SOAP12EnvelopeImpl extends SOAPEnvelopeImpl implements AxiomSOAP12Envelope {
+ public SOAP12EnvelopeImpl(OMFactory factory) {
+ super(factory);
+ }
+}
Propchange: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12EnvelopeImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java Sun Sep 6 19:43:42 2015
@@ -55,6 +55,7 @@ import org.apache.axiom.om.impl.llom.OME
import org.apache.axiom.om.impl.llom.OMProcessingInstructionImpl;
import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
import org.apache.axiom.soap.impl.common.AxiomSOAP11Body;
+import org.apache.axiom.soap.impl.common.AxiomSOAP11Envelope;
import org.apache.axiom.soap.impl.common.AxiomSOAP11Fault;
import org.apache.axiom.soap.impl.common.AxiomSOAP11FaultCode;
import org.apache.axiom.soap.impl.common.AxiomSOAP11FaultDetail;
@@ -63,6 +64,7 @@ import org.apache.axiom.soap.impl.common
import org.apache.axiom.soap.impl.common.AxiomSOAP11Header;
import org.apache.axiom.soap.impl.common.AxiomSOAP11HeaderBlock;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Body;
+import org.apache.axiom.soap.impl.common.AxiomSOAP12Envelope;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Fault;
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultCode;
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultDetail;
@@ -74,11 +76,10 @@ import org.apache.axiom.soap.impl.common
import org.apache.axiom.soap.impl.common.AxiomSOAP12FaultValue;
import org.apache.axiom.soap.impl.common.AxiomSOAP12Header;
import org.apache.axiom.soap.impl.common.AxiomSOAP12HeaderBlock;
-import org.apache.axiom.soap.impl.common.AxiomSOAPEnvelope;
import org.apache.axiom.soap.impl.common.AxiomSOAPMessage;
-import org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl;
import org.apache.axiom.soap.impl.llom.SOAPMessageImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11BodyImpl;
+import org.apache.axiom.soap.impl.llom.soap11.SOAP11EnvelopeImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11FaultCodeImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11FaultDetailImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11FaultImpl;
@@ -87,6 +88,7 @@ import org.apache.axiom.soap.impl.llom.s
import org.apache.axiom.soap.impl.llom.soap11.SOAP11HeaderBlockImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11HeaderImpl;
import org.apache.axiom.soap.impl.llom.soap12.SOAP12BodyImpl;
+import org.apache.axiom.soap.impl.llom.soap12.SOAP12EnvelopeImpl;
import org.apache.axiom.soap.impl.llom.soap12.SOAP12FaultCodeImpl;
import org.apache.axiom.soap.impl.llom.soap12.SOAP12FaultDetailImpl;
import org.apache.axiom.soap.impl.llom.soap12.SOAP12FaultImpl;
@@ -143,8 +145,10 @@ public class OMLinkedListImplFactory imp
node = new OMSourcedElementImpl(this);
} else if (type == AxiomSOAPMessage.class) {
node = new SOAPMessageImpl(this);
- } else if (type == AxiomSOAPEnvelope.class) {
- node = new SOAPEnvelopeImpl(this);
+ } else if (type == AxiomSOAP11Envelope.class) {
+ node = new SOAP11EnvelopeImpl(this);
+ } else if (type == AxiomSOAP12Envelope.class) {
+ node = new SOAP12EnvelopeImpl(this);
} else if (type == AxiomSOAP11Header.class) {
node = new SOAP11HeaderImpl(this);
} else if (type == AxiomSOAP12Header.class) {
Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=1701519&r1=1701518&r2=1701519&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -34,7 +34,6 @@ import org.apache.axiom.om.impl.common.s
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAP12Version;
import org.apache.axiom.soap.SOAPBody;
import org.apache.axiom.soap.SOAPConstants;
import org.apache.axiom.soap.SOAPFactory;
@@ -47,7 +46,7 @@ import org.apache.axiom.soap.impl.common
import javax.xml.namespace.QName;
/** Class SOAPEnvelopeImpl */
-public class SOAPEnvelopeImpl extends SOAPElement
+public abstract class SOAPEnvelopeImpl extends SOAPElement
implements AxiomSOAPEnvelope, OMConstants {
private static final Log log = LogFactory.getLog(SOAPEnvelopeImpl.class);
@@ -75,30 +74,11 @@ public class SOAPEnvelopeImpl extends SO
}
/**
- * Check that a node is allowed as a child of a SOAP envelope.
- *
- * @param child
- */
- // TODO: this should be integrated into the checkChild API
- private void internalCheckChild(OMNode child) {
- if ((child instanceof OMElement)
- && !(child instanceof SOAPHeader || child instanceof SOAPBody)) {
- throw new SOAPProcessingException(
- "SOAP Envelope can not have children other than SOAP Header and Body",
- SOAP12Constants.FAULT_CODE_SENDER);
- }
- }
-
- /**
* Add a SOAPHeader or SOAPBody object
* @param child an OMNode to add - must be either a SOAPHeader or a SOAPBody
*/
public void addChild(OMNode child, boolean fromBuilder) {
- // SOAP 1.1 allows for arbitrary elements after SOAPBody so do NOT check for
- // node types when appending to SOAP 1.1 envelope.
- if (getVersion() instanceof SOAP12Version) {
- internalCheckChild(child);
- }
+ internalCheckChild(child);
if (child instanceof SOAPHeader) {
// The SOAPHeader is added before the SOAPBody
Added: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java (added)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,29 @@
+/*
+ * 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.soap.impl.llom.soap11;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.impl.common.AxiomSOAP11Envelope;
+import org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl;
+
+public class SOAP11EnvelopeImpl extends SOAPEnvelopeImpl implements AxiomSOAP11Envelope {
+ public SOAP11EnvelopeImpl(OMFactory factory) {
+ super(factory);
+ }
+}
Propchange: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11EnvelopeImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java?rev=1701519&view=auto
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java (added)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java Sun Sep 6 19:43:42 2015
@@ -0,0 +1,29 @@
+/*
+ * 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.soap.impl.llom.soap12;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.impl.common.AxiomSOAP12Envelope;
+import org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl;
+
+public class SOAP12EnvelopeImpl extends SOAPEnvelopeImpl implements AxiomSOAP12Envelope {
+ public SOAP12EnvelopeImpl(OMFactory factory) {
+ super(factory);
+ }
+}
Propchange: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12EnvelopeImpl.java
------------------------------------------------------------------------------
svn:eol-style = native