Author: veithen
Date: Thu Sep 3 19:06:52 2015
New Revision: 1701110
URL: http://svn.apache.org/r1701110
Log:
Make it clear that StAXBuilder, StAXOMBuilder, XOPAwareStAXOMBuilder,
StAXSOAPModelBuilder and MTOMStAXSOAPModelBuilder are internal implementation
classes that shouldn't be used directly by application code.
Added:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java
(with props)
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/XOPAwareStAXOMBuilder.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/util/CopyUtils.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/MTOMStAXSOAPModelBuilder.java
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
webservices/axiom/trunk/systests/integration-tests/src/test/java/org/apache/axiom/om/impl/builder/JAXBCustomBuilderTest.java
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
(original)
+++
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
Thu Sep 3 19:06:52 2015
@@ -160,7 +160,7 @@ public abstract class AbstractOMMetaFact
}
public OMXMLParserWrapper createStAXOMBuilder(OMFactory omFactory,
XMLStreamReader parser) {
- return new StAXOMBuilder(omFactory, getXMLStreamReader(parser));
+ return new StAXOMBuilder(omFactory, getXMLStreamReader(parser),
(Detachable)null, (Closeable)null);
}
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory,
StAXParserConfiguration configuration, InputSource is) {
@@ -190,7 +190,7 @@ public abstract class AbstractOMMetaFact
toInputSource((StreamSource)source));
} else {
try {
- return new StAXOMBuilder(omFactory,
StAXUtils.getXMLInputFactory().createXMLStreamReader(source));
+ return new StAXOMBuilder(omFactory,
StAXUtils.getXMLInputFactory().createXMLStreamReader(source), (Detachable)null,
(Closeable)null);
} catch (XMLStreamException ex) {
throw new OMException(ex);
}
@@ -199,7 +199,7 @@ public abstract class AbstractOMMetaFact
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, Node node,
boolean expandEntityReferences) {
- return new StAXOMBuilder(omFactory, new DOMXMLStreamReader(node,
expandEntityReferences));
+ return new StAXOMBuilder(omFactory, new DOMXMLStreamReader(node,
expandEntityReferences), (Detachable)null, (Closeable)null);
}
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, SAXSource
source,
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMXMLBuilderFactory.java
Thu Sep 3 19:06:52 2015
@@ -28,11 +28,13 @@ import javax.xml.transform.Source;
import javax.xml.transform.sax.SAXSource;
import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
import org.apache.axiom.mime.ContentType;
import org.apache.axiom.om.impl.builder.AttachmentsMimePartProvider;
import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPModelBuilder;
+import org.apache.axiom.util.stax.XMLStreamReaderUtils;
import org.w3c.dom.EntityReference;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
@@ -60,6 +62,10 @@ public class OMXMLBuilderFactory {
* well defined way to build an object model from a fragment
(corresponding to a single element)
* of the document represented by the stream reader.
* <p>
+ * The builder supports the {@link XMLStreamReader} extension defined by
+ * {@link DataHandlerReader} as well as the legacy extension mechanism
defined in the
+ * documentation of {@link XMLStreamReaderUtils}.
+ * <p>
* The returned builder also performs namespace repairing, i.e. it adds
appropriate namespace
* declarations if undeclared namespaces appear in the StAX stream.
*
Added:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java?rev=1701110&view=auto
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java
(added)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java
Thu Sep 3 19:06:52 2015
@@ -0,0 +1,46 @@
+/*
+ * 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.om.impl.builder;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface allowing registration of a custom builder. This is a semi-public
API used by Axis2; it
+ * is not meant for general consumption.
+ */
+public interface CustomBuilderSupport {
+ /**
+ * Register a CustomBuilder associated with the indicated QName.
+ * The CustomBuilder will be used when an element of that qname is
encountered.
+ * @param qName
+ * @param maxDepth indicate the maximum depth that this qname will be
found. (root = 0)
+ * @param customBuilder
+ * @return replaced CustomBuilder or null
+ */
+ CustomBuilder registerCustomBuilder(QName qName, int maxDepth,
CustomBuilder customBuilder);
+
+ /**
+ * Register a CustomBuilder for a payload.
+ * The payload is defined as the elements inside a SOAPBody or the
+ * document element of a REST message.
+ * @param customBuilder
+ * @return replaced CustomBuilder or null
+ */
+ CustomBuilder registerCustomBuilderForPayload(CustomBuilder customBuilder);
+}
Propchange:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/CustomBuilderSupport.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
Thu Sep 3 19:06:52 2015
@@ -52,11 +52,9 @@ import java.util.LinkedHashMap;
import java.util.Map;
/**
- * OM should be able to be built from any data source. And the model it builds
may be a SOAP
- * specific one or just an XML model. This class will give some common
functionality of OM Building
- * from StAX.
+ * Internal implementation class.
*/
-public abstract class StAXBuilder implements OMXMLParserWrapper {
+public abstract class StAXBuilder implements OMXMLParserWrapper,
CustomBuilderSupport {
private static final Log log = LogFactory.getLog(StAXBuilder.class);
@@ -151,23 +149,14 @@ public abstract class StAXBuilder implem
}
/**
- * Constructor StAXBuilder.
- * This constructor is used if the parser is at the beginning
(START_DOCUMENT).
- *
- * @param omFactory
- * @param parser
+ * @deprecated
*/
protected StAXBuilder(OMFactory omFactory, XMLStreamReader parser) {
this(omFactory, parser, null, null);
}
/**
- * Constructor StAXBuilder.
- * This constructor is used if the parser is not at the START_DOCUMENT.
- *
- * @param omFactory
- * @param parser
- * @param encoding
+ * @deprecated
*/
protected StAXBuilder(OMFactory omFactory,
XMLStreamReader parser,
@@ -184,9 +173,7 @@ public abstract class StAXBuilder implem
}
/**
- * Constructor StAXBuilder.
- *
- * @param parser
+ * @deprecated
*/
protected StAXBuilder(XMLStreamReader parser) {
this(OMAbstractFactory.getOMFactory(), parser);
@@ -668,14 +655,6 @@ public abstract class StAXBuilder implem
*/
public abstract int next() throws OMException;
- /**
- * Register a CustomBuilder associated with the indicated QName.
- * The CustomBuilder will be used when an element of that qname is
encountered.
- * @param qName
- * @param maxDepth indicate the maximum depth that this qname will be
found. (root = 0)
- * @param customBuilder
- * @return replaced CustomBuilder or null
- */
public CustomBuilder registerCustomBuilder(QName qName, int maxDepth,
CustomBuilder customBuilder) {
CustomBuilder old = null;
if (customBuilders == null) {
@@ -691,13 +670,6 @@ public abstract class StAXBuilder implem
}
- /**
- * Register a CustomBuilder for a payload.
- * The payload is defined as the elements inside a SOAPBody or the
- * document element of a REST message.
- * @param customBuilder
- * @return replaced CustomBuilder or null
- */
public CustomBuilder registerCustomBuilderForPayload(CustomBuilder
customBuilder) {
CustomBuilder old = null;
this.customBuilderForPayload = customBuilder;
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
Thu Sep 3 19:06:52 2015
@@ -29,6 +29,7 @@ import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMHierarchyException;
import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.impl.OMContainerEx;
import org.apache.axiom.om.impl.OMElementEx;
import org.apache.axiom.om.util.StAXUtils;
@@ -48,37 +49,36 @@ import java.io.FileNotFoundException;
import java.io.InputStream;
/**
- * StAX based builder that produces a pure XML infoset compliant object model.
- * <p>
- * This class supports the {@link XMLStreamReader} extension defined by
- * {@link org.apache.axiom.ext.stax.datahandler.DataHandlerReader} as well as
the legacy extension mechanism
- * defined in the documentation of {@link
org.apache.axiom.util.stax.XMLStreamReaderUtils}.
- * <h3>Error handling</h3>
+ * Internal implementation class.
+ */
+/* Implementation note about error handling
+ * ----------------------------------------
+ *
* Usually, code that uses StAX directly just stops processing of an XML
document
* once the first parsing error has been reported. However, since Axiom
* uses deferred parsing, and client code accesses the XML infoset using
* an object model, things are more complicated. Indeed, if the XML
* document is not well formed, the corresponding error might be reported
* as a runtime exception by any call to a method of an OM node.
- * <p>
+ *
* Typically the client code will have some error handling that will intercept
* runtime exceptions and take appropriate action. Very often this error
handling
* code might want to access the object model again, for example to log the
request that caused the
* failure. This causes no problem except if the runtime exception was caused
by a
* parsing error, in which case Axiom would again try to pull events from the
parser.
- * <p>
+ *
* This would lead to a situation where Axiom accesses a parser that has
reported a parsing
* error before. While one would expect that after a first error reported by
the parser, all
* subsequent invocations of the parser will fail, this is not the case for
all parsers
* (at least not in all situations). Instead, the parser might be left in an
inconsistent
* state after the error. E.g. AXIOM-34 describes a case where Woodstox
- * encounters an error in {@link XMLStreamReader#getText()} but continues to
return
+ * encounters an error in XMLStreamReader#getText() but continues to return
* (incorrect) events afterwards. The explanation for this behaviour might be
that
* the situation described here is quite uncommon when StAX is used directly
(i.e. not through
* Axiom).
- * <p>
+ *
* To avoid this, the builder remembers exceptions thrown by the parser and
rethrows
- * them during a call to {@link #next()}.
+ * them during a call to next().
*/
public class StAXOMBuilder extends StAXBuilder {
private static final Log log = LogFactory.getLog(StAXOMBuilder.class);
@@ -107,66 +107,49 @@ public class StAXOMBuilder extends StAXB
}
/**
- * Constructor StAXOMBuilder.
- *
- * @param ombuilderFactory
- * @param parser
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXOMBuilder(OMFactory ombuilderFactory, XMLStreamReader parser) {
super(ombuilderFactory, parser);
}
/**
- * Constructor linked to existing element.
- *
- * @param factory
- * @param parser
- * @param element
- * @param characterEncoding of existing element
+ * For internal use only.
*/
public StAXOMBuilder(OMFactory factory,
XMLStreamReader parser,
OMElement element,
String characterEncoding) {
// Use this constructor because the parser is passed the
START_DOCUMENT state.
- super(factory, parser, characterEncoding);
+ super(factory, parser, characterEncoding, null, null);
elementLevel = 1;
target = (OMContainerEx)element;
populateOMElement(element);
}
/**
- * Constructor linked to existing element.
- *
- * @param factory
- * @param parser
- * @param element
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXOMBuilder(OMFactory factory, XMLStreamReader parser, OMElement
element) {
this(factory, parser, element, null);
}
/**
- * @param filePath - Path to the XML file
- * @throws XMLStreamException
- * @throws FileNotFoundException
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXOMBuilder(String filePath) throws XMLStreamException,
FileNotFoundException {
this(StAXUtils.createXMLStreamReader(new FileInputStream(filePath)));
}
/**
- * Constructor StAXOMBuilder.
- *
- * @param parser
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXOMBuilder(XMLStreamReader parser) {
this(OMAbstractFactory.getOMFactory(), parser);
}
/**
- * @param inStream - instream which contains the XML
- * @throws XMLStreamException
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXOMBuilder(InputStream inStream) throws XMLStreamException {
this(StAXUtils.createXMLStreamReader(inStream));
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/XOPAwareStAXOMBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/XOPAwareStAXOMBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/XOPAwareStAXOMBuilder.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/XOPAwareStAXOMBuilder.java
Thu Sep 3 19:06:52 2015
@@ -23,6 +23,7 @@ import org.apache.axiom.attachments.Atta
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.util.StAXUtils;
import org.apache.axiom.util.stax.xop.MimePartProvider;
import org.apache.axiom.util.stax.xop.XOPDecodingStreamReader;
@@ -43,10 +44,7 @@ public class XOPAwareStAXOMBuilder
Attachments attachments;
/**
- * Constructor StAXOMBuilder.
- *
- * @param ombuilderFactory
- * @param parser
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public XOPAwareStAXOMBuilder(OMFactory ombuilderFactory,
XMLStreamReader parser, Attachments
attachments) {
@@ -56,11 +54,7 @@ public class XOPAwareStAXOMBuilder
}
/**
- * Constructor linked to existing element.
- *
- * @param factory
- * @param parser
- * @param element
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public XOPAwareStAXOMBuilder(OMFactory factory, XMLStreamReader parser,
OMElement element, Attachments attachments) {
@@ -70,9 +64,7 @@ public class XOPAwareStAXOMBuilder
}
/**
- * @param filePath - Path to the XML file
- * @throws XMLStreamException
- * @throws FileNotFoundException
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public XOPAwareStAXOMBuilder(String filePath, Attachments attachments)
throws XMLStreamException,
@@ -83,8 +75,7 @@ public class XOPAwareStAXOMBuilder
}
/**
- * @param inStream - instream which contains the XML
- * @throws XMLStreamException
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public XOPAwareStAXOMBuilder(InputStream inStream, Attachments attachments)
throws XMLStreamException {
@@ -94,9 +85,7 @@ public class XOPAwareStAXOMBuilder
}
/**
- * Constructor StAXXOPAwareOMBuilder.
- *
- * @param parser
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public XOPAwareStAXOMBuilder(XMLStreamReader parser, Attachments
attachments) {
super(new XOPDecodingStreamReader(parser, new
AttachmentsMimePartProvider(
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/util/CopyUtils.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/util/CopyUtils.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/util/CopyUtils.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/util/CopyUtils.java
Thu Sep 3 19:06:52 2015
@@ -22,7 +22,8 @@ import org.apache.axiom.om.OMCloneOption
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMInformationItem;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.soap.SOAPCloneOptions;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -79,7 +80,7 @@ public class CopyUtils {
public static void reader2writer(XMLStreamReader reader,
XMLStreamWriter writer)
throws XMLStreamException {
- StAXOMBuilder builder = new StAXOMBuilder(reader);
+ OMXMLParserWrapper builder =
OMXMLBuilderFactory.createStAXOMBuilder(reader);
try {
OMDocument omDocument = builder.getDocument();
Iterator it = omDocument.getChildren();
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
Thu Sep 3 19:06:52 2015
@@ -28,8 +28,7 @@ import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMProcessingInstruction;
import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.jaxen.BaseXPath;
import org.jaxen.DefaultNavigator;
import org.jaxen.FunctionCallException;
@@ -549,7 +548,7 @@ public class DocumentNavigator extends D
URL url = new URL(uri);
in = url.openStream();
}
- return new
StAXOMBuilder(StAXUtils.createXMLStreamReader(in)).getDocument();
+ return OMXMLBuilderFactory.createOMBuilder(in).getDocument();
} catch (Exception e) {
if (in != null) {
try {
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/MTOMStAXSOAPModelBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/MTOMStAXSOAPModelBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/MTOMStAXSOAPModelBuilder.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/MTOMStAXSOAPModelBuilder.java
Thu Sep 3 19:06:52 2015
@@ -23,6 +23,7 @@ import java.io.Closeable;
import org.apache.axiom.attachments.Attachments;
import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.impl.builder.AttachmentsMimePartProvider;
import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.builder.XOPBuilder;
@@ -33,11 +34,17 @@ import org.apache.axiom.util.stax.xop.XO
import javax.activation.DataHandler;
import javax.xml.stream.XMLStreamReader;
+/**
+ * Internal implementation class.
+ */
public class MTOMStAXSOAPModelBuilder extends StAXSOAPModelBuilder implements
XOPBuilder {
/** <code>Attachments</code> handles deferred parsing of incoming MIME
Messages. */
private final Attachments attachments;
+ /**
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
+ */
public MTOMStAXSOAPModelBuilder(XMLStreamReader parser,
SOAPFactory factory, Attachments
attachments,
String soapVersion) {
@@ -47,8 +54,7 @@ public class MTOMStAXSOAPModelBuilder ex
}
/**
- * @param reader
- * @param attachments
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public MTOMStAXSOAPModelBuilder(XMLStreamReader reader,
Attachments attachments, String
soapVersion) {
@@ -57,6 +63,9 @@ public class MTOMStAXSOAPModelBuilder ex
this.attachments = attachments;
}
+ /**
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
+ */
public MTOMStAXSOAPModelBuilder(XMLStreamReader reader,
Attachments attachments) {
super(new XOPDecodingStreamReader(reader, new
AttachmentsMimePartProvider(
Modified:
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
(original)
+++
webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
Thu Sep 3 19:06:52 2015
@@ -29,6 +29,7 @@ import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.impl.builder.CustomBuilder;
import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
@@ -50,24 +51,7 @@ import org.apache.commons.logging.LogFac
import javax.xml.stream.XMLStreamReader;
/**
- * StAX based builder that produces a SOAP infoset model.
- * It builds SOAP specific objects such as {@link SOAPEnvelope}, {@link
SOAPHeader},
- * {@link org.apache.axiom.soap.SOAPHeaderBlock} and {@link SOAPBody}.
- * <p>
- * This builder offers two different ways to handle SOAP versions:
- * <ul>
- * <li>Either the SOAP version is specified when the builder is constructed.
If the specified
- * version doesn't match the envelope namespace of the actual message,
an exception is
- * triggered. This approach should be used when the SOAP version is
known from information
- * other than the content of the message. For example, in the HTTP case
it is possible
- * to identify the SOAP version based on the <tt>Content-Type</tt>
header.</li>
- * <li>If no SOAP version is specified, the builder will automatically
detect it from the
- * envelope namespace. It will then build the object model using the
- * {@link SOAPFactory} implementation corresponding to that SOAP
version.</li>
- * </ul>
- * In both cases, the {@link SOAPFactory} is retrieved either from the {@link
OMMetaFactory}
- * specified when the builder is constructed, or if none is specified, from
the default
- * meta factory returned by {@link OMAbstractFactory#getMetaFactory()}.
+ * Internal implementation class.
*/
public class StAXSOAPModelBuilder extends StAXOMBuilder implements
SOAPModelBuilder {
/**
@@ -92,24 +76,14 @@ public class StAXSOAPModelBuilder extend
private SOAPBuilderHelper builderHelper;
/**
- * Constructor.
- *
- * @param parser the parser to read the SOAP message from
- * @param soapVersion the namespace URI corresponding to the expected SOAP
version
- * of the message
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXSOAPModelBuilder(XMLStreamReader parser, String soapVersion) {
this(OMAbstractFactory.getMetaFactory(), parser, soapVersion);
}
/**
- * Constructor.
- *
- * @param metaFactory the meta factory used to get the appropriate {@link
SOAPFactory}
- * implementation
- * @param parser the parser to read the SOAP message from
- * @param soapVersion the namespace URI corresponding to the expected SOAP
version
- * of the message
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXSOAPModelBuilder(OMMetaFactory metaFactory, XMLStreamReader
parser,
String soapVersion) {
@@ -119,9 +93,7 @@ public class StAXSOAPModelBuilder extend
}
/**
- * Constructor.
- *
- * @param parser the parser to read the SOAP message from
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXSOAPModelBuilder(XMLStreamReader parser) {
this(OMAbstractFactory.getMetaFactory(), parser);
@@ -137,11 +109,7 @@ public class StAXSOAPModelBuilder extend
}
/**
- * Constructor.
- *
- * @param metaFactory the meta factory used to get the appropriate {@link
SOAPFactory}
- * implementation
- * @param parser the parser to read the SOAP message from
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXSOAPModelBuilder(OMMetaFactory metaFactory, XMLStreamReader
parser) {
this(metaFactory, parser, null, null);
@@ -158,12 +126,7 @@ public class StAXSOAPModelBuilder extend
}
/**
- * Constructor.
- *
- * @param parser the parser to read the SOAP message from
- * @param factory the SOAP factory to use
- * @param soapVersion the namespace URI corresponding to the expected SOAP
version
- * of the message
+ * @deprecated Please use the {@link OMXMLBuilderFactory} API.
*/
public StAXSOAPModelBuilder(XMLStreamReader parser, SOAPFactory factory,
String soapVersion) {
this(parser, factory, soapVersion, null, null);
Modified:
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
(original)
+++
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
Thu Sep 3 19:06:52 2015
@@ -17,6 +17,8 @@
*/
package org.apache.abdera.parser.stax;
+import java.io.Closeable;
+
import javax.xml.stream.XMLStreamReader;
import org.apache.abdera.model.Content;
@@ -29,6 +31,7 @@ import org.apache.abdera.util.Constants;
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
@SuppressWarnings("unchecked")
@@ -38,7 +41,7 @@ public class FOMBuilder extends StAXOMBu
private final ParserOptions parserOptions;
public FOMBuilder(FOMFactory factory, XMLStreamReader parser,
ParserOptions parserOptions) {
- super(factory, new FOMStAXFilter(parser, parserOptions));
+ super(factory, new FOMStAXFilter(parser, parserOptions),
(Detachable)null, (Closeable)null);
this.parserOptions = parserOptions;
this.fomfactory = factory;
}
Modified:
webservices/axiom/trunk/systests/integration-tests/src/test/java/org/apache/axiom/om/impl/builder/JAXBCustomBuilderTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/systests/integration-tests/src/test/java/org/apache/axiom/om/impl/builder/JAXBCustomBuilderTest.java?rev=1701110&r1=1701109&r2=1701110&view=diff
==============================================================================
---
webservices/axiom/trunk/systests/integration-tests/src/test/java/org/apache/axiom/om/impl/builder/JAXBCustomBuilderTest.java
(original)
+++
webservices/axiom/trunk/systests/integration-tests/src/test/java/org/apache/axiom/om/impl/builder/JAXBCustomBuilderTest.java
Thu Sep 3 19:06:52 2015
@@ -39,6 +39,9 @@ import org.apache.axiom.om.OMAbstractFac
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.testutils.activation.RandomDataSource;
import org.apache.axiom.testutils.activation.TestDataSource;
import org.apache.axiom.testutils.io.IOTestUtils;
@@ -65,9 +68,9 @@ public class JAXBCustomBuilderTest {
return document;
}
- private void test(DataHandler dh, StAXOMBuilder builder, boolean same,
boolean usesAttachments, boolean expectBareReader) throws IOException {
+ private void test(DataHandler dh, OMXMLParserWrapper builder, boolean
same, boolean usesAttachments, boolean expectBareReader) throws IOException {
JAXBCustomBuilder customBuilder = new JAXBCustomBuilder(jaxbContext,
expectBareReader);
- builder.registerCustomBuilderForPayload(customBuilder);
+
((CustomBuilderSupport)builder).registerCustomBuilderForPayload(customBuilder);
builder.getDocumentElement().build();
MyDocument myDocument = (MyDocument)customBuilder.getJaxbObject();
if (same) {
@@ -86,14 +89,14 @@ public class JAXBCustomBuilderTest {
OutputStream out = blob.getOutputStream();
createTestDocument(dh).serialize(out);
out.close();
- test(dh, new StAXOMBuilder(blob.getInputStream()), false, false, true);
+ test(dh, OMXMLBuilderFactory.createOMBuilder(blob.getInputStream()),
false, false, true);
}
@Test
public void testWithDataHandlerReaderExtension() throws Exception {
DataHandler dh = new DataHandler(new TestDataSource('X',
Integer.MAX_VALUE));
OMElement document = createTestDocument(dh);
- test(dh, new StAXOMBuilder(document.getXMLStreamReader()), true, true,
false);
+ test(dh,
OMXMLBuilderFactory.createStAXOMBuilder(document.getXMLStreamReader()), true,
true, false);
}
@Test
@@ -106,6 +109,6 @@ public class JAXBCustomBuilderTest {
createTestDocument(dh).serialize(out, format);
out.close();
Attachments attachments = new Attachments(blob.getInputStream(),
format.getContentType());
- test(dh, new
XOPAwareStAXOMBuilder(attachments.getRootPartInputStream(), attachments),
false, true, true);
+ test(dh,
OMXMLBuilderFactory.createOMBuilder(StAXParserConfiguration.DEFAULT,
attachments), false, true, true);
}
}