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 2012/07/14 09:34:52 UTC
svn commit: r1361483 [2/2] - in /webservices/axiom/branches/AXIOM-201: ./
modules/axiom-api/src/main/java/org/apache/axiom/om/
modules/axiom-api/src/main/java/org/apache/axiom/om/impl/
modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/ m...
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java Sat Jul 14 07:34:50 2012
@@ -26,11 +26,10 @@ import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMSourcedElement;
-import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
-import org.apache.axiom.om.impl.OMContainerEx;
import org.apache.axiom.om.impl.OMNodeEx;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.common.IContainer;
+import org.apache.axiom.om.impl.common.IParentNode;
import org.apache.axiom.om.impl.common.OMChildrenLocalNameIterator;
import org.apache.axiom.om.impl.common.OMChildrenNamespaceIterator;
import org.apache.axiom.om.impl.common.OMChildrenQNameIterator;
@@ -49,7 +48,7 @@ import javax.xml.transform.sax.SAXSource
import java.util.Iterator;
-public abstract class ParentNode extends NodeImpl implements NodeList {
+public abstract class ParentNode extends NodeImpl implements NodeList, IParentNode {
protected NodeImpl firstChild;
@@ -72,22 +71,7 @@ public abstract class ParentNode extends
}
public void addChild(OMNode omNode, boolean fromBuilder) {
- OMContainerHelper.addChild((OMContainerEx)this, omNode, fromBuilder);
- }
-
- public void buildNext() {
- OMXMLParserWrapper builder = getBuilder();
- if (builder != null) {
- if (((StAXOMBuilder)builder).isClosed()) {
- throw new OMException("The builder has already been closed");
- } else if (!builder.isCompleted()) {
- builder.next();
- } else {
- // If the builder is suddenly complete, but the completion status of the node
- // doesn't change, then this means that we built the wrong nodes
- throw new IllegalStateException("Builder is already complete");
- }
- }
+ OMContainerHelper.addChild((IContainer)this, omNode, fromBuilder);
}
public Iterator getChildren() {
@@ -139,10 +123,7 @@ public abstract class ParentNode extends
}
public OMNode getFirstOMChild() {
- while ((firstChild == null) && !isComplete()) {
- buildNext();
- }
- return (OMNode)firstChild;
+ return OMContainerHelper.getFirstOMChild(this);
}
public OMNode getFirstOMChildIfAvailable() {
@@ -212,10 +193,7 @@ public abstract class ParentNode extends
}
public boolean hasChildNodes() {
- while ((firstChild == null) && !isComplete()) {
- buildNext();
- }
- return this.firstChild != null;
+ return getFirstChild() != null;
}
public final Node appendChild(Node newChild) throws DOMException {
@@ -577,11 +555,11 @@ public abstract class ParentNode extends
}
public XMLStreamReader getXMLStreamReader(boolean cache) {
- return OMContainerHelper.getXMLStreamReader((OMContainer)this, cache);
+ return OMContainerHelper.getXMLStreamReader((IContainer)this, cache);
}
public XMLStreamReader getXMLStreamReader(boolean cache, OMXMLStreamReaderConfiguration configuration) {
- return OMContainerHelper.getXMLStreamReader((OMContainer)this, cache, configuration);
+ return OMContainerHelper.getXMLStreamReader((IContainer)this, cache, configuration);
}
public SAXSource getSAXSource(boolean cache) {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java Sat Jul 14 07:34:50 2012
@@ -22,11 +22,14 @@ package org.apache.axiom.om.impl.dom.fac
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.axiom.om.impl.common.factory.AbstractOMMetaFactory;
import org.apache.axiom.om.impl.dom.DOMImplementationImpl;
import org.apache.axiom.om.impl.dom.jaxp.DOOMDocumentBuilderFactory;
import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPMessage;
+import org.apache.axiom.soap.impl.dom.SOAPMessageImpl;
import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
import org.w3c.dom.DOMImplementation;
@@ -56,6 +59,10 @@ public class OMDOMMetaFactory extends Ab
return soap12Factory;
}
+ public SOAPMessage createSOAPMessage(OMXMLParserWrapper builder) {
+ return new SOAPMessageImpl(builder, null);
+ }
+
public DocumentBuilderFactory newDocumentBuilderFactory() {
return new DOOMDocumentBuilderFactory(omFactory);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java Sat Jul 14 07:34:50 2012
@@ -28,7 +28,6 @@ import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
-import org.apache.axiom.om.impl.dom.DocumentImpl;
import org.apache.axiom.om.impl.dom.NodeImpl;
import org.apache.axiom.om.impl.dom.ParentNode;
import org.apache.axiom.om.impl.util.OMSerializerUtil;
@@ -111,7 +110,7 @@ public class SOAPEnvelopeImpl extends SO
// The SOAPHeader is added before the SOAPBody
// We must be sensitive to the state of the parser. It is possible that the
// has not been processed yet.
- if (this.done) {
+ if (state == COMPLETE) {
// Parsing is complete, therefore it is safe to
// call getBody.
SOAPBody body = getBody();
@@ -227,7 +226,7 @@ public class SOAPEnvelopeImpl extends SO
} else {
//Now the caching is supposed to be off. However caching been switched off
//has nothing to do if the element is already built!
- if (this.done || (this.builder == null)) {
+ if (state == COMPLETE || (this.builder == null)) {
OMSerializerUtil.serializeStartpart(this, writer);
OMElement header = getHeader();
if ((header != null) && (header.getFirstOMChild() != null)) {
@@ -256,14 +255,6 @@ public class SOAPEnvelopeImpl extends SO
// child = (NodeImpl) child.getNextOMSibling();
}
- public OMNode getNextOMSibling() throws OMException {
- DocumentImpl ownerDocument = (DocumentImpl)getOwnerDocument();
- if (ownerDocument != null && !ownerDocument.isComplete()) {
- ownerDocument.setComplete(true);
- }
- return null;
- }
-
public boolean hasFault() {
QName payloadQName = this.getPayloadQName_Optimized();
if (payloadQName != null) {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultNodeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultNodeImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultNodeImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultNodeImpl.java Sat Jul 14 07:34:50 2012
@@ -82,7 +82,7 @@ public abstract class SOAPFaultNodeImpl
OMSerializerUtil.serializeStartpart(this, writer);
firstChild.internalSerialize(writer, false);
OMSerializerUtil.serializeEndpart(writer);
- } else if (!this.done) {
+ } else if (state == INCOMPLETE) {
if (builderType == PULL_TYPE_BUILDER) {
OMSerializerUtil.serializeByPullStream(this, writer);
} else {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultRoleImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultRoleImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultRoleImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultRoleImpl.java Sat Jul 14 07:34:50 2012
@@ -78,7 +78,7 @@ public abstract class SOAPFaultRoleImpl
OMSerializerUtil.serializeStartpart(this, writer);
firstChild.internalSerialize(writer, false);
OMSerializerUtil.serializeEndpart(writer);
- } else if (!this.done) {
+ } else if (state == INCOMPLETE) {
if (builderType == PULL_TYPE_BUILDER) {
OMSerializerUtil.serializeByPullStream(this, writer);
} else {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java Sat Jul 14 07:34:50 2012
@@ -36,15 +36,8 @@ public class SOAPMessageImpl extends Doc
super(factory);
}
- public SOAPMessageImpl(SOAPEnvelope envelope,
- OMXMLParserWrapper parserWrapper, SOAPFactory factory) {
- this(parserWrapper, factory);
- this.setSOAPEnvelope(envelope);
- }
-
public SOAPMessageImpl(OMXMLParserWrapper parserWrapper, SOAPFactory factory) {
- super(factory);
- this.builder = parserWrapper;
+ super(parserWrapper, factory);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/factory/DOMSOAPFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/factory/DOMSOAPFactory.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/factory/DOMSOAPFactory.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/factory/DOMSOAPFactory.java Sat Jul 14 07:34:50 2012
@@ -22,6 +22,7 @@ package org.apache.axiom.soap.impl.dom.f
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.impl.dom.ParentNode;
import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
import org.apache.axiom.soap.SOAPBody;
@@ -55,12 +56,8 @@ public abstract class DOMSOAPFactory ext
return new SOAPMessageImpl(builder, this);
}
- public SOAPMessage createSOAPMessage(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper) {
- return new SOAPMessageImpl(envelope, parserWrapper, this);
- }
-
- public SOAPEnvelope createSOAPEnvelope(OMXMLParserWrapper builder) {
- return new SOAPEnvelopeImpl(null, null, builder, this, false);
+ public SOAPEnvelope createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder) {
+ return new SOAPEnvelopeImpl((ParentNode)message, null, builder, this, false);
}
public SOAPFault createSOAPFault(SOAPBody parent) throws SOAPProcessingException {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java Sat Jul 14 07:34:50 2012
@@ -27,7 +27,7 @@ import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
-import org.apache.axiom.om.impl.OMContainerEx;
+import org.apache.axiom.om.impl.common.IContainer;
import org.apache.axiom.om.impl.common.OMChildrenLocalNameIterator;
import org.apache.axiom.om.impl.common.OMChildrenNamespaceIterator;
import org.apache.axiom.om.impl.common.OMChildrenQNameIterator;
@@ -46,10 +46,10 @@ import javax.xml.transform.sax.SAXSource
import java.util.Iterator;
/** Class OMDocumentImpl */
-public class OMDocumentImpl extends OMSerializableImpl implements OMDocument, OMContainerEx {
+public class OMDocumentImpl extends OMSerializableImpl implements OMDocument, IContainer {
protected OMXMLParserWrapper builder;
- protected boolean done;
+ protected int state;
/** Field firstChild */
protected OMNode firstChild;
@@ -74,7 +74,7 @@ public class OMDocumentImpl extends OMSe
*/
public OMDocumentImpl(OMFactory factory) {
super(factory);
- this.done = true;
+ state = COMPLETE;
}
/**
@@ -88,21 +88,6 @@ public class OMDocumentImpl extends OMSe
this.builder = parserWrapper;
}
- /**
- * Create the <code>OMDoucment</code> with the factory and set the given <code>OMElement</code>
- * as the document element
- *
- * @param documentElement
- * @param parserWrapper
- * @param factory
- */
- public OMDocumentImpl(OMElement documentElement, OMXMLParserWrapper parserWrapper,
- OMFactory factory) {
- super(factory);
- this.builder = parserWrapper;
- setOMDocumentElement(documentElement);
- }
-
public OMXMLParserWrapper getBuilder() {
return builder;
}
@@ -136,8 +121,12 @@ public class OMDocumentImpl extends OMSe
}
}
+ public int getState() {
+ return state;
+ }
+
public boolean isComplete() {
- return done;
+ return state == COMPLETE;
}
/**
@@ -145,8 +134,12 @@ public class OMDocumentImpl extends OMSe
*
* @param state
*/
- public void setComplete(boolean state) {
- this.done = state;
+ public void setComplete(boolean complete) {
+ state = complete ? COMPLETE : INCOMPLETE;
+ }
+
+ public void discarded() {
+ state = DISCARDED;
}
public void addChild(OMNode child) {
@@ -203,10 +196,7 @@ public class OMDocumentImpl extends OMSe
* @return Returns first om child.
*/
public OMNode getFirstOMChild() {
- while ((firstChild == null) && !done) {
- buildNext();
- }
- return firstChild;
+ return OMContainerHelper.getFirstOMChild(this);
}
public OMNode getFirstOMChildIfAvailable() {
@@ -325,7 +315,7 @@ public class OMDocumentImpl extends OMSe
}
void notifyChildComplete() {
- if (!this.done && builder == null) {
+ if (state == INCOMPLETE && builder == null) {
Iterator iterator = getChildren();
while (iterator.hasNext()) {
OMNode node = (OMNode) iterator.next();
@@ -340,4 +330,8 @@ public class OMDocumentImpl extends OMSe
public SAXSource getSAXSource(boolean cache) {
return new OMSource(this);
}
+
+ public void build() {
+ OMContainerHelper.build(this);
+ }
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Sat Jul 14 07:34:50 2012
@@ -30,9 +30,9 @@ import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
-import org.apache.axiom.om.impl.OMContainerEx;
import org.apache.axiom.om.impl.OMElementEx;
import org.apache.axiom.om.impl.OMNodeEx;
+import org.apache.axiom.om.impl.common.IContainer;
import org.apache.axiom.om.impl.common.NamespaceIterator;
import org.apache.axiom.om.impl.common.OMChildElementIterator;
import org.apache.axiom.om.impl.common.OMChildrenLegacyQNameIterator;
@@ -68,13 +68,13 @@ import java.util.LinkedHashMap;
/** Class OMElementImpl */
public class OMElementImpl extends OMNodeImpl
- implements OMElementEx, OMConstants, OMContainerEx {
+ implements OMElementEx, OMConstants, IContainer {
private static final Log log = LogFactory.getLog(OMElementImpl.class);
protected OMXMLParserWrapper builder;
- protected boolean done;
+ protected int state;
/**
* The namespace of this element. Possible values:
@@ -116,9 +116,9 @@ public class OMElementImpl extends OMNod
}
this.localName = localName;
this.builder = builder;
- this.done = builder == null;
+ state = builder == null ? COMPLETE : INCOMPLETE;
if (parent != null) {
- ((OMContainerEx)parent).addChild(this, builder != null);
+ ((IContainer)parent).addChild(this, builder != null);
}
this.ns = generateNSDecl ? handleNamespace(ns) : ns;
}
@@ -132,7 +132,7 @@ public class OMElementImpl extends OMNod
public OMElementImpl(QName qname, OMContainer parent, OMFactory factory)
throws OMException {
super(factory);
- done = true;
+ state = COMPLETE;
if (parent != null) {
parent.addChild(this);
}
@@ -147,7 +147,7 @@ public class OMElementImpl extends OMNod
*/
OMElementImpl(OMFactory factory) {
super(factory);
- done = true;
+ state = COMPLETE;
}
/** Method handleNamespace. */
@@ -640,10 +640,7 @@ public class OMElementImpl extends OMNod
* @return Returns child.
*/
public OMNode getFirstOMChild() {
- while ((firstChild == null) && !done) {
- buildNext();
- }
- return firstChild;
+ return OMContainerHelper.getFirstOMChild(this);
}
public OMNode getFirstOMChildIfAvailable() {
@@ -673,20 +670,10 @@ public class OMElementImpl extends OMNod
* @throws OMException
*/
public OMNode detach() throws OMException {
- if (isComplete() && !parent.isComplete() && getNextOMSiblingIfAvailable() == null) {
- // Special case: the node is complete, but the next node has not yet been created.
- // In this case we want to detach the node without creating the next node because
- // the builder may already have been closed (there is code in Axis2 that calls
- // detach in that situation). We use discard for this: in this state, discard
- // actually won't discard anything, but it will update the lastNode attribute
- // of the builder.
- getBuilder().discard(this);
- } else {
- if (!done) {
- build();
- }
- super.detach();
+ if (state == INCOMPLETE) {
+ build();
}
+ super.detach();
return this;
}
@@ -699,25 +686,29 @@ public class OMElementImpl extends OMNod
* builder is null. Meaning this is a programatical created element but it has children which are not completed
* Build them all.
*/
- if (builder == null && !done) {
+ if (builder == null && state == INCOMPLETE) {
for (Iterator childrenIterator = this.getChildren(); childrenIterator.hasNext();) {
OMNode omNode = (OMNode) childrenIterator.next();
omNode.build();
}
} else {
- super.build();
+ OMContainerHelper.build(this);
}
}
+ public int getState() {
+ return state;
+ }
+
public boolean isComplete() {
- return done;
+ return state == COMPLETE;
}
- public void setComplete(boolean state) {
- this.done = state;
+ public void setComplete(boolean complete) {
+ state = complete ? COMPLETE : INCOMPLETE;
if (parent != null) {
- if (!done) {
+ if (!complete) {
parent.setComplete(false);
} else if (parent instanceof OMElementImpl) {
((OMElementImpl) parent).notifyChildComplete();
@@ -727,6 +718,10 @@ public class OMElementImpl extends OMNod
}
}
+ public void discarded() {
+ state = DISCARDED;
+ }
+
public XMLStreamReader getXMLStreamReader() {
return getXMLStreamReader(true);
}
@@ -790,7 +785,7 @@ public class OMElementImpl extends OMNod
public void internalSerialize(XMLStreamWriter writer, boolean cache)
throws XMLStreamException {
- if (cache || this.done || (this.builder == null)) {
+ if (cache || state == COMPLETE || (this.builder == null)) {
OMSerializerUtil.serializeStartpart(this, writer);
OMSerializerUtil.serializeChildren(this, writer, cache);
OMSerializerUtil.serializeEndpart(writer);
@@ -920,7 +915,7 @@ public class OMElementImpl extends OMNod
* @throws OMException
*/
public void discard() throws OMException {
- if (done || builder == null) {
+ if (state == COMPLETE || builder == null) {
this.detach();
} else {
builder.discard(this);
@@ -991,7 +986,7 @@ public class OMElementImpl extends OMNod
* @see org.apache.axiom.om.OMNode#buildAll()
*/
public void buildWithAttachments() {
- if (!done) {
+ if (state == INCOMPLETE) {
this.build();
}
Iterator iterator = getChildren();
@@ -1003,7 +998,7 @@ public class OMElementImpl extends OMNod
/** This method will be called when one of the children becomes complete. */
void notifyChildComplete() {
- if (!this.done && builder == null) {
+ if (state == INCOMPLETE && builder == null) {
Iterator iterator = getChildren();
while (iterator.hasNext()) {
OMNode node = (OMNode) iterator.next();
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMLeafNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMLeafNode.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMLeafNode.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMLeafNode.java Sat Jul 14 07:34:50 2012
@@ -53,4 +53,8 @@ public abstract class OMLeafNode extends
public final void discard() throws OMException {
detach();
}
+
+ public void build() {
+ // Do nothing; a leaf node is always complete
+ }
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNodeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNodeImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNodeImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNodeImpl.java Sat Jul 14 07:34:50 2012
@@ -30,13 +30,17 @@ import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.impl.OMContainerEx;
import org.apache.axiom.om.impl.OMNodeEx;
import org.apache.axiom.om.impl.builder.OMFactoryEx;
+import org.apache.axiom.om.impl.common.IChildNode;
+import org.apache.axiom.om.impl.common.IContainer;
+import org.apache.axiom.om.impl.common.IParentNode;
+import org.apache.axiom.om.impl.common.OMNodeHelper;
import org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory;
/** Class OMNodeImpl */
-public abstract class OMNodeImpl extends OMSerializableImpl implements OMNode, OMNodeEx {
+public abstract class OMNodeImpl extends OMSerializableImpl implements IChildNode {
/** Field parent */
- protected OMContainerEx parent;
+ protected IContainer parent;
/** Field nextSibling */
protected OMNodeImpl nextSibling;
@@ -63,6 +67,10 @@ public abstract class OMNodeImpl extends
return parent;
}
+ public IParentNode getIParentNode() {
+ return parent;
+ }
+
/**
* Method setParent.
*
@@ -81,7 +89,7 @@ public abstract class OMNodeImpl extends
if (this.parent != null) {
this.detach();
}
- this.parent = (OMContainerEx) element;
+ this.parent = (IContainer) element;
} else {
this.parent = null;
}
@@ -95,12 +103,7 @@ public abstract class OMNodeImpl extends
*
*/
public OMNode getNextOMSibling() throws OMException {
- if (nextSibling == null && parent != null && parent.getBuilder() != null) {
- while (!parent.isComplete() && nextSibling == null) {
- parent.buildNext();
- }
- }
- return nextSibling;
+ return OMNodeHelper.getNextOMSibling(this);
}
public OMNode getNextOMSiblingIfAvailable() {
@@ -131,7 +134,10 @@ public abstract class OMNodeImpl extends
throw new OMException(
"Nodes that don't have a parent can not be detached");
}
- OMNodeImpl nextSibling = (OMNodeImpl) getNextOMSibling();
+ // Note that we don't need to force creation of the next sibling because the
+ // builder will always add new nodes to the end of list of children of the
+ // document or element being built.
+ OMNodeImpl nextSibling = (OMNodeImpl) getNextOMSiblingIfAvailable();
if (previousSibling == null) {
parent.setFirstChild(nextSibling);
} else {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSerializableImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSerializableImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSerializableImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSerializableImpl.java Sat Jul 14 07:34:50 2012
@@ -34,62 +34,28 @@ import org.apache.axiom.om.impl.MTOMXMLS
import org.apache.axiom.om.impl.builder.StAXBuilder;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public abstract class OMSerializableImpl implements OMSerializable {
private static final Log log = LogFactory.getLog(OMSerializableImpl.class);
- protected final OMFactory factory;
+ protected OMFactory factory;
public OMSerializableImpl(OMFactory factory) {
this.factory = factory;
}
public OMFactory getOMFactory() {
+ if (factory == null) {
+ factory = ((StAXSOAPModelBuilder)getBuilder()).getSOAPFactory();
+ }
return factory;
}
public abstract OMXMLParserWrapper getBuilder();
- /**
- * Parses this node and builds the object structure in memory. However a node, created
- * programmatically, will have done set to true by default and this will cause populateyourself
- * not to work properly!
- *
- * @throws OMException
- */
- public void build() throws OMException {
- OMXMLParserWrapper builder = getBuilder();
- if (builder != null && builder.isCompleted()) {
- log.debug("Builder is already complete.");
- }
- while (!isComplete()) {
-
- builder.next();
- if (builder.isCompleted() && !isComplete()) {
- log.debug("Builder is complete. Setting OMObject to complete.");
- setComplete(true);
- }
- }
- }
-
- /** Forces the parser to proceed, if parser has not yet finished with the XML input. */
- public void buildNext() {
- OMXMLParserWrapper builder = getBuilder();
- if (builder != null) {
- if (((StAXOMBuilder)builder).isClosed()) {
- throw new OMException("The builder has already been closed");
- } else if (!builder.isCompleted()) {
- builder.next();
- } else {
- // If the builder is suddenly complete, but the completion status of the node
- // doesn't change, then this means that we built the wrong nodes
- throw new IllegalStateException("Builder is already complete");
- }
- }
- }
-
public void close(boolean build) {
OMXMLParserWrapper builder = getBuilder();
if (build) {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java Sat Jul 14 07:34:50 2012
@@ -887,11 +887,6 @@ public class OMSourcedElementImpl extend
return super.getLastKnownOMChild();
}
- public void buildNext() {
- forceExpand();
- super.buildNext();
- }
-
public OMNode detach() throws OMException {
// detach without expanding the tree
boolean complete = isComplete();
@@ -915,6 +910,14 @@ public class OMSourcedElementImpl extend
return super.handleNamespace(qname);
}
+ public int getState() {
+ if (isExpanded) {
+ return super.getState();
+ } else {
+ return COMPLETE;
+ }
+ }
+
public boolean isComplete() {
if (isExpanded) {
return super.isComplete();
@@ -948,7 +951,7 @@ public class OMSourcedElementImpl extend
public void buildWithAttachments() {
// If not done, force the parser to build the elements
- if (!done) {
+ if (state == INCOMPLETE) {
this.build();
}
@@ -1026,8 +1029,8 @@ public class OMSourcedElementImpl extend
* parent (which may have a different builder or no builder).
*/
public void setComplete(boolean value) {
- done = value;
- if (done == true) {
+ state = value ? COMPLETE : INCOMPLETE;
+ if (value == true) {
if (readerFromDS != null) {
try {
readerFromDS.close();
@@ -1042,7 +1045,7 @@ public class OMSourcedElementImpl extend
dataSource = null;
}
}
- if (done == true && readerFromDS != null) {
+ if (value == true && readerFromDS != null) {
try {
readerFromDS.close();
} catch (XMLStreamException e) {
@@ -1051,6 +1054,11 @@ public class OMSourcedElementImpl extend
}
}
+ public void discarded() {
+ // TODO: will we ever get here?
+ super.discarded();
+ }
+
public SAXSource getSAXSource(boolean cache) {
return super.getSAXSource(cache);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListMetaFactory.java Sat Jul 14 07:34:50 2012
@@ -20,8 +20,11 @@
package org.apache.axiom.om.impl.llom.factory;
import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.common.factory.AbstractOMMetaFactory;
import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPMessage;
+import org.apache.axiom.soap.impl.llom.SOAPMessageImpl;
import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
import org.apache.axiom.soap.impl.llom.soap12.SOAP12Factory;
@@ -44,4 +47,8 @@ public class OMLinkedListMetaFactory ext
public SOAPFactory getSOAP12Factory() {
return soap12Factory;
}
+
+ public SOAPMessage createSOAPMessage(OMXMLParserWrapper builder) {
+ return new SOAPMessageImpl(builder, null);
+ }
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java Sat Jul 14 07:34:50 2012
@@ -37,8 +37,6 @@ import org.apache.axiom.soap.SOAPFault;
import org.apache.axiom.soap.SOAPProcessingException;
import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
-import javax.xml.stream.XMLStreamConstants;
-
/** Class SOAPBodyImpl */
public abstract class SOAPBodyImpl extends SOAPElement
implements SOAPBody, OMConstants {
@@ -150,18 +148,6 @@ public abstract class SOAPBodyImpl exten
"Can not detach SOAP Body, SOAP Envelope must have a Body !!");
}
- /*
- * Overridden so that we can detect when a child element is built
- */
- public void buildNext() {
- if (builder != null) {
- int token = builder.next();
- if (token == XMLStreamConstants.START_ELEMENT) {
- enableLookAhead = false;
- }
- }
- }
-
private boolean hasLookahead() {
if (!enableLookAhead) {
return false;
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPElement.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPElement.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPElement.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPElement.java Sat Jul 14 07:34:50 2012
@@ -55,7 +55,7 @@ public abstract class SOAPElement extend
}
- protected SOAPElement(OMElement parent,
+ protected SOAPElement(OMContainer parent,
String localName,
OMXMLParserWrapper builder,
SOAPFactory factory) {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java Sat Jul 14 07:34:50 2012
@@ -41,6 +41,7 @@ import org.apache.axiom.soap.SOAPConstan
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPMessage;
import org.apache.axiom.soap.SOAPProcessingException;
import org.apache.axiom.soap.SOAPVersion;
import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
@@ -56,11 +57,12 @@ public class SOAPEnvelopeImpl extends SO
/**
* Constructor
+ * @param message
* @param builder the OMXMLParserWrapper building this envelope
* @param factory the SOAPFactory building this envelope
*/
- public SOAPEnvelopeImpl(OMXMLParserWrapper builder, SOAPFactory factory) {
- super(null, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, builder, factory);
+ public SOAPEnvelopeImpl(SOAPMessage message, OMXMLParserWrapper builder, SOAPFactory factory) {
+ super(message, SOAPConstants.SOAPENVELOPE_LOCAL_NAME, builder, factory);
}
/**
@@ -123,7 +125,7 @@ public class SOAPEnvelopeImpl extends SO
// The SOAPHeader is added before the SOAPBody
// We must be sensitive to the state of the parser. It is possible that the
// has not been processed yet.
- if (this.done) {
+ if (state == COMPLETE) {
// Parsing is complete, therefore it is safe to
// call getBody.
SOAPBody body = getBody();
@@ -220,7 +222,7 @@ public class SOAPEnvelopeImpl extends SO
} else {
//Now the caching is supposed to be off. However caching been switched off
//has nothing to do if the element is already built!
- if (this.done || (this.builder == null)) {
+ if (state == COMPLETE || (this.builder == null)) {
OMSerializerUtil.serializeStartpart(this, writer);
OMElement header = getHeader();
if ((header != null) && (header.getFirstOMChild() != null)) {
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPMessageImpl.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPMessageImpl.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPMessageImpl.java Sat Jul 14 07:34:50 2012
@@ -38,10 +38,6 @@ public class SOAPMessageImpl extends OMD
super(factory);
}
- public SOAPMessageImpl(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper, SOAPFactory factory) {
- super(envelope, parserWrapper, factory);
- }
-
public SOAPMessageImpl(OMXMLParserWrapper parserWrapper, SOAPFactory factory) {
super(parserWrapper, factory);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11Factory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11Factory.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11Factory.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11Factory.java Sat Jul 14 07:34:50 2012
@@ -327,14 +327,8 @@ public class SOAP11Factory extends OMLin
return new SOAPMessageImpl(builder, this);
}
-
- public SOAPMessage createSOAPMessage(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper) {
- return new SOAPMessageImpl(envelope, parserWrapper, this);
- }
-
-
- public SOAPEnvelope createSOAPEnvelope(OMXMLParserWrapper builder) {
- return new SOAPEnvelopeImpl(builder, this);
+ public SOAPEnvelope createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder) {
+ return new SOAPEnvelopeImpl(message, builder, this);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12Factory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12Factory.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12Factory.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12Factory.java Sat Jul 14 07:34:50 2012
@@ -330,14 +330,8 @@ public class SOAP12Factory extends OMLin
return new SOAPMessageImpl(builder, this);
}
-
- public SOAPMessage createSOAPMessage(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper) {
- return new SOAPMessageImpl(envelope, parserWrapper, this);
- }
-
-
- public SOAPEnvelope createSOAPEnvelope(OMXMLParserWrapper builder) {
- return new SOAPEnvelopeImpl(builder, this);
+ public SOAPEnvelope createSOAPEnvelope(SOAPMessage message, OMXMLParserWrapper builder) {
+ return new SOAPEnvelopeImpl(message, builder, this);
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Sat Jul 14 07:34:50 2012
@@ -87,6 +87,7 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.builder.TestGetDocumentElementWithIllFormedDocument(metaFactory));
addTest(new org.apache.axiom.ts.om.builder.TestInvalidXML(metaFactory));
addTest(new org.apache.axiom.ts.om.builder.TestIOExceptionInGetText(metaFactory));
+ addTest(new org.apache.axiom.ts.om.builder.TestNextBeforeGetDocumentElement(metaFactory));
addTest(new org.apache.axiom.ts.om.builder.TestReadAttachmentBeforeRootPartComplete(metaFactory));
addTest(new org.apache.axiom.ts.om.builder.TestRootPartStreaming(metaFactory));
addTest(new org.apache.axiom.ts.om.builder.TestStandaloneConfiguration(metaFactory));
@@ -363,6 +364,7 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneOMElementUnknownName(metaFactory));
addTest(new org.apache.axiom.ts.om.sourcedelement.TestComplete(metaFactory));
addTest(new org.apache.axiom.ts.om.sourcedelement.TestExpand(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetDocumentFromBuilder(metaFactory));
addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespaceNormalized(metaFactory));
addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespaceNormalized2(metaFactory));
addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNextOMSiblingIncomplete(metaFactory));
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDiscardIncomplete.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDiscardIncomplete.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDiscardIncomplete.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDiscardIncomplete.java Sat Jul 14 07:34:50 2012
@@ -36,19 +36,17 @@ public class TestDiscardIncomplete exten
protected void runTest() throws Throwable {
OMElement documentElement = null;
- try {
- // first build the OM tree without caching and see whether we can discard
- // an element from it
- OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(),
- AbstractTestCase.getTestResource(TestConstants.SOAP_SOAPMESSAGE));
- documentElement = builder.getDocumentElement();
+
+ // first build the OM tree without caching and see whether we can discard
+ // an element from it
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(),
+ AbstractTestCase.getTestResource(TestConstants.SOAP_SOAPMESSAGE));
+ documentElement = builder.getDocumentElement();
- documentElement.getFirstElement().discard();
+ documentElement.getFirstElement().discard();
- String envelopeString = documentElement.toStringWithConsume();
- } catch (Exception e) {
- fail("discarding an element should work!");
- }
+ String envelopeString = documentElement.toStringWithConsume();
+
documentElement.close(false);
}
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/node/TestGetNextOMSiblingAfterDiscard.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/node/TestGetNextOMSiblingAfterDiscard.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/node/TestGetNextOMSiblingAfterDiscard.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/node/TestGetNextOMSiblingAfterDiscard.java Sat Jul 14 07:34:50 2012
@@ -20,6 +20,7 @@ package org.apache.axiom.ts.om.node;
import java.io.StringReader;
+import org.apache.axiom.om.NodeUnavailableException;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMMetaFactory;
@@ -40,9 +41,8 @@ public class TestGetNextOMSiblingAfterDi
element.discard();
try {
child.getNextOMSibling();
- fail("Expected OMException");
- } catch (Exception ex) {
- // TODO: we should get an OMException here; right now we get an IllegalStateException
+ fail("Expected NodeUnavailableException");
+ } catch (NodeUnavailableException ex) {
// Expected
}
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestCase.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestCase.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestCase.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestCase.java Sat Jul 14 07:34:50 2012
@@ -28,6 +28,7 @@ import org.apache.axiom.soap.SOAPEnvelop
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.SOAPModelBuilder;
import org.apache.axiom.ts.AxiomTestCase;
import org.xml.sax.InputSource;
@@ -52,10 +53,13 @@ public abstract class SOAPTestCase exten
altSoapFactory = spec.getAltFactory(metaFactory);
}
- protected SOAPEnvelope getTestMessage(String name) {
+ protected SOAPModelBuilder getBuilderForTestMessage(String name) {
InputStream in = AbstractTestCase.getTestResource("soap/" + spec.getName() + "/" + name);
- SOAPEnvelope envelope = (SOAPEnvelope)metaFactory.createSOAPModelBuilder(StAXParserConfiguration.SOAP,
- new InputSource(in)).getDocumentElement();
+ return metaFactory.createSOAPModelBuilder(StAXParserConfiguration.SOAP, new InputSource(in));
+ }
+
+ protected SOAPEnvelope getTestMessage(String name) {
+ SOAPEnvelope envelope = getBuilderForTestMessage(name).getSOAPEnvelope();
assertSame(spec.getEnvelopeNamespaceURI(), ((SOAPFactory)envelope.getOMFactory()).getSoapVersionURI());
return envelope;
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java Sat Jul 14 07:34:50 2012
@@ -99,6 +99,8 @@ public class SOAPTestSuiteBuilder extend
addTest(new org.apache.axiom.ts.soap.body.TestHasFaultWithOMSEUnknownName(metaFactory, spec));
}
addTest(new org.apache.axiom.ts.soap.body.TestHasFaultWithParser(metaFactory, spec));
+ addTest(new org.apache.axiom.ts.soap.builder.TestCommentInEpilog(metaFactory, spec));
+ addTest(new org.apache.axiom.ts.soap.builder.TestCommentInProlog(metaFactory, spec));
if (supportsBodyElementNameOptimization) {
addTest(new org.apache.axiom.ts.soap.builder.TestRegisterCustomBuilderForPayloadAfterSOAPFaultCheck(metaFactory, spec));
}
@@ -185,6 +187,8 @@ public class SOAPTestSuiteBuilder extend
addTest(new org.apache.axiom.ts.soap.headerblock.TestWrongParent1(metaFactory, spec));
addTest(new org.apache.axiom.ts.soap.headerblock.TestWrongParent2(metaFactory, spec));
addTest(new org.apache.axiom.ts.soap.headerblock.TestWrongParent3(metaFactory, spec));
+ addTest(new org.apache.axiom.ts.soap.message.TestGetCharsetEncodingWithParser(metaFactory, spec));
+ addTest(new org.apache.axiom.ts.soap.message.TestGetOMFactoryWithParser(metaFactory, spec));
addTest(new org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope(metaFactory, spec, true));
addTest(new org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope(metaFactory, spec, false));
}
Modified: webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/BadInputTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/BadInputTest.java?rev=1361483&r1=1361482&r2=1361483&view=diff
==============================================================================
--- webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/BadInputTest.java (original)
+++ webservices/axiom/branches/AXIOM-201/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/BadInputTest.java Sat Jul 14 07:34:50 2012
@@ -20,10 +20,10 @@
package org.apache.axiom.ts.soap.builder;
import org.apache.axiom.om.AbstractTestCase;
-import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPProcessingException;
import org.apache.axiom.ts.AxiomTestCase;
public class BadInputTest extends AxiomTestCase {
@@ -42,8 +42,8 @@ public class BadInputTest extends AxiomT
AbstractTestCase.getTestResource("badsoap/" + file), null)
.getSOAPEnvelope();
OMTestUtils.walkThrough(soapEnvelope);
- fail("this must failed gracefully with OMException");
- } catch (OMException e) {
+ fail("this must failed gracefully with SOAPProcessingException");
+ } catch (SOAPProcessingException e) {
return;
}
}