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 2016/03/12 11:28:32 UTC
svn commit: r1734681 - in /webservices/axiom/trunk:
aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/com...
Author: veithen
Date: Sat Mar 12 10:28:31 2016
New Revision: 1734681
URL: http://svn.apache.org/viewvc?rev=1734681&view=rev
Log:
* Unitfy StAXOMBuilder and PushBuilder.
* Improve encapsulation.
* Disable namespace repairing if the source is a parser.
Added:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java
- copied, changed from r1734621, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModelBuilderImpl.java
- copied, changed from r1734655, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java
Removed:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/DocumentElementExtractingFilterHandler.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
webservices/axiom/trunk/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMBuilder.java
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/DocumentElementExtractingFilterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/DocumentElementExtractingFilterHandler.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/DocumentElementExtractingFilterHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/DocumentElementExtractingFilterHandler.java Sat Mar 12 10:28:31 2016
@@ -30,6 +30,10 @@ public final class DocumentElementExtrac
}
@Override
+ public void startFragment() throws StreamException {
+ }
+
+ @Override
public void completed() throws StreamException {
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuildableContext.java Sat Mar 12 10:28:31 2016
@@ -153,6 +153,12 @@ final class BuildableContext extends Con
target = document;
}
+ @Override
+ void startFragment() {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
void processDocumentTypeDeclaration(String rootName, String publicId, String systemId,
String internalSubset) throws StreamException {
if (passThroughHandler != null) {
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java Sat Mar 12 10:28:31 2016
@@ -38,10 +38,10 @@ final class BuilderHandler implements Xm
final Builder builder;
final OMNamespaceCache nsCache = new OMNamespaceCache();
private final Context rootContext;
- public Context context;
+ private Context context;
private int activeContextCount;
// returns the state of completion
- public boolean done;
+ private boolean done;
private AxiomDocument document;
/**
@@ -135,8 +135,7 @@ final class BuilderHandler implements Xm
@Override
public void startFragment() throws StreamException {
- // TODO
- throw new UnsupportedOperationException();
+ context.startFragment();
}
public void processDocumentTypeDeclaration(String rootName, String publicId, String systemId,
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java (from r1734621, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java&r1=1734621&r2=1734681&rev=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java Sat Mar 12 10:28:31 2016
@@ -21,30 +21,63 @@ package org.apache.axiom.om.impl.common.
import org.apache.axiom.core.Builder;
import org.apache.axiom.core.NodeFactory;
import org.apache.axiom.core.stream.NamespaceRepairingFilterHandler;
-import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlInput;
+import org.apache.axiom.core.stream.XmlReader;
+import org.apache.axiom.om.DeferredParsingException;
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.ds.custombuilder.CustomBuilder;
+import org.apache.axiom.om.ds.custombuilder.CustomBuilderSupport;
+import org.apache.axiom.om.ds.custombuilder.CustomBuilder.Selector;
+import org.apache.axiom.om.impl.builder.Detachable;
import org.apache.axiom.om.impl.intf.AxiomDocument;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
-public abstract class AbstractBuilder implements OMXMLParserWrapper, Builder {
- protected final BuilderHandler builderHandler;
- protected final XmlHandler handler;
+public class BuilderImpl implements OMXMLParserWrapper, Builder, CustomBuilderSupport {
+ private final XmlReader reader;
+ private final Detachable detachable;
+ private final BuilderHandler builderHandler;
+ private final CustomBuilderManager customBuilderManager = new CustomBuilderManager();
- public AbstractBuilder(NodeFactory nodeFactory, Model model, AxiomSourcedElement root, boolean repairNamespaces) {
+ public BuilderImpl(XmlInput input, NodeFactory nodeFactory, Model model,
+ AxiomSourcedElement root, boolean repairNamespaces, Detachable detachable) {
builderHandler = new BuilderHandler(nodeFactory, model, root, this);
- handler = repairNamespaces ? new NamespaceRepairingFilterHandler(builderHandler, null, false) : builderHandler;
+ reader = input.createReader(repairNamespaces ? new NamespaceRepairingFilterHandler(builderHandler, null, false) : builderHandler);
+ this.detachable = detachable;
+ addListener(customBuilderManager);
}
public final void addListener(BuilderListener listener) {
builderHandler.addListener(listener);
}
+
+ @Override
+ public void registerCustomBuilder(Selector selector, CustomBuilder customBuilder) {
+ customBuilderManager.register(selector, customBuilder);
+ }
+
+ @Override
+ public void next() {
+ if (isCompleted()) {
+ throw new OMException();
+ }
+ try {
+ reader.proceed();
+ } catch (StreamException ex) {
+ throw new DeferredParsingException(ex);
+ }
+ builderHandler.executeDeferredActions();
+ }
+ @Override
public final boolean isCompleted() {
return builderHandler.isCompleted();
}
+ @Override
public final OMDocument getDocument() {
AxiomDocument document;
while ((document = builderHandler.getDocument()) == null) {
@@ -53,10 +86,12 @@ public abstract class AbstractBuilder im
return document;
}
+ @Override
public final OMElement getDocumentElement() {
return getDocumentElement(false);
}
+ @Override
public final OMElement getDocumentElement(boolean discardDocument) {
OMDocument document = getDocument();
OMElement element = document.getOMDocumentElement();
@@ -66,4 +101,20 @@ public abstract class AbstractBuilder im
}
return element;
}
+
+ @Override
+ public final void close() {
+ reader.dispose();
+ }
+
+ @Override
+ public final void detach() throws OMException {
+ if (detachable != null) {
+ detachable.detach();
+ } else {
+ while (!isCompleted()) {
+ next();
+ }
+ }
+ }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java Sat Mar 12 10:28:31 2016
@@ -43,6 +43,8 @@ abstract class Context {
abstract void startDocument(String inputEncoding, String xmlVersion, String xmlEncoding, boolean standalone);
+ abstract void startFragment();
+
abstract void processDocumentTypeDeclaration(String rootName, String publicId, String systemId,
String internalSubset) throws StreamException;
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java Sat Mar 12 10:28:31 2016
@@ -36,6 +36,10 @@ final class UnwrappingContext extends Co
}
@Override
+ void startFragment() {
+ }
+
+ @Override
void processDocumentTypeDeclaration(String rootName, String publicId, String systemId,
String internalSubset) throws StreamException {
// TODO Auto-generated method stub
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=1734681&r1=1734680&r2=1734681&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 Sat Mar 12 10:28:31 2016
@@ -38,9 +38,8 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.builder.Detachable;
+import org.apache.axiom.om.impl.common.builder.BuilderImpl;
import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
-import org.apache.axiom.om.impl.common.builder.PushBuilder;
-import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.stream.stax.StAXPullInput;
import org.apache.axiom.om.util.StAXParserConfiguration;
import org.apache.axiom.om.util.StAXUtils;
@@ -48,7 +47,7 @@ import org.apache.axiom.soap.SOAP12Const
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPModelBuilder;
import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.soap.impl.common.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.impl.common.builder.SOAPModelBuilderImpl;
import org.apache.axiom.util.stax.XMLEventUtils;
import org.apache.axiom.util.stax.XMLFragmentStreamReader;
import org.apache.axiom.util.stax.xop.MimePartProvider;
@@ -58,7 +57,7 @@ import org.xml.sax.InputSource;
/**
* Base class for {@link OMMetaFactory} implementations that make use of the standard builders
- * ({@link org.apache.axiom.om.impl.builder.StAXOMBuilder} and its subclasses).
+ * ({@link org.apache.axiom.om.impl.builder.BuilderImpl} and its subclasses).
*/
public abstract class AbstractOMMetaFactory implements OMMetaFactory {
private final static class SourceInfo {
@@ -168,13 +167,16 @@ public abstract class AbstractOMMetaFact
}
public OMXMLParserWrapper createStAXOMBuilder(OMFactory omFactory, XMLStreamReader parser) {
- return new StAXOMBuilder(nodeFactory, new StAXPullInput(getXMLStreamReader(parser), false, null), null);
+ return new BuilderImpl(
+ new StAXPullInput(getXMLStreamReader(parser), false, null),
+ nodeFactory, PlainXMLModel.INSTANCE, null, true, null);
}
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, StAXParserConfiguration configuration, InputSource is) {
SourceInfo sourceInfo = createXMLStreamReader(configuration, is, true);
- return new StAXOMBuilder(nodeFactory, new StAXPullInput(sourceInfo.getReader(), true,
- sourceInfo.getCloseable()), sourceInfo.getDetachable());
+ return new BuilderImpl(
+ new StAXPullInput(sourceInfo.getReader(), true, sourceInfo.getCloseable()),
+ nodeFactory, PlainXMLModel.INSTANCE, null, false, sourceInfo.getDetachable());
}
private static InputSource toInputSource(StreamSource source) {
@@ -196,7 +198,9 @@ public abstract class AbstractOMMetaFact
toInputSource((StreamSource)source));
} else {
try {
- return new StAXOMBuilder(nodeFactory, new StAXPullInput(StAXUtils.getXMLInputFactory().createXMLStreamReader(source), true, null), null);
+ return new BuilderImpl(
+ new StAXPullInput(StAXUtils.getXMLInputFactory().createXMLStreamReader(source), true, null),
+ nodeFactory, PlainXMLModel.INSTANCE, null, true, null);
} catch (XMLStreamException ex) {
throw new OMException(ex);
}
@@ -205,34 +209,35 @@ public abstract class AbstractOMMetaFact
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, Node node,
boolean expandEntityReferences) {
- return new StAXOMBuilder(nodeFactory, new StAXPullInput(new DOMXMLStreamReader(node, expandEntityReferences), true, null), null);
+ return new BuilderImpl(
+ new StAXPullInput(new DOMXMLStreamReader(node, expandEntityReferences), true, null),
+ nodeFactory, PlainXMLModel.INSTANCE, null, true, null);
}
// TODO: don't need the omFactory argument anymore
public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, SAXSource source,
boolean expandEntityReferences) {
- return new PushBuilder(new SAXInput(source, expandEntityReferences), nodeFactory, PlainXMLModel.INSTANCE, null, true);
+ return new BuilderImpl(new SAXInput(source, expandEntityReferences), nodeFactory, PlainXMLModel.INSTANCE, null, true, null);
}
public OMXMLParserWrapper createOMBuilder(StAXParserConfiguration configuration,
OMFactory omFactory, InputSource rootPart, MimePartProvider mimePartProvider) {
SourceInfo sourceInfo = createXMLStreamReader(configuration, rootPart, false);
- return new StAXOMBuilder(
- nodeFactory,
- new StAXPullInput(new XOPDecodingStreamReader(sourceInfo.getReader(), mimePartProvider), true, sourceInfo.getCloseable()),
+ return new BuilderImpl(
+ new StAXPullInput(new XOPDecodingStreamReader(sourceInfo.getReader(), mimePartProvider), true, sourceInfo.getCloseable()),
+ nodeFactory, PlainXMLModel.INSTANCE, null, false,
mimePartProvider instanceof Detachable ? (Detachable)mimePartProvider : null);
}
public SOAPModelBuilder createStAXSOAPModelBuilder(XMLStreamReader parser) {
- return new StAXSOAPModelBuilder(nodeFactory, new StAXPullInput(getXMLStreamReader(parser), false, null), null);
+ return new SOAPModelBuilderImpl(new StAXPullInput(getXMLStreamReader(parser), false, null), nodeFactory, true, null);
}
public SOAPModelBuilder createSOAPModelBuilder(StAXParserConfiguration configuration, InputSource is) {
SourceInfo sourceInfo = createXMLStreamReader(configuration, is, true);
- return new StAXSOAPModelBuilder(
- nodeFactory,
+ return new SOAPModelBuilderImpl(
new StAXPullInput(sourceInfo.getReader(), true, sourceInfo.getCloseable()),
- sourceInfo.getDetachable());
+ nodeFactory, false, sourceInfo.getDetachable());
}
public SOAPModelBuilder createSOAPModelBuilder(Source source) {
@@ -240,13 +245,13 @@ public abstract class AbstractOMMetaFact
// TODO: supporting this will require some refactoring of the builders
throw new UnsupportedOperationException();
} else if (source instanceof DOMSource) {
- return new StAXSOAPModelBuilder(nodeFactory, new StAXPullInput(new DOMXMLStreamReader(((DOMSource)source).getNode(), true), true, null), null);
+ return new SOAPModelBuilderImpl(new StAXPullInput(new DOMXMLStreamReader(((DOMSource)source).getNode(), true), true, null), nodeFactory, true, null);
} else if (source instanceof StreamSource) {
return createSOAPModelBuilder(StAXParserConfiguration.SOAP,
toInputSource((StreamSource)source));
} else {
try {
- return new StAXSOAPModelBuilder(nodeFactory, new StAXPullInput(StAXUtils.getXMLInputFactory().createXMLStreamReader(source), true, null), null);
+ return new SOAPModelBuilderImpl(new StAXPullInput(StAXUtils.getXMLInputFactory().createXMLStreamReader(source), true, null), nodeFactory, true, null);
} catch (XMLStreamException ex) {
throw new OMException(ex);
}
@@ -256,9 +261,9 @@ public abstract class AbstractOMMetaFact
public SOAPModelBuilder createSOAPModelBuilder(StAXParserConfiguration configuration,
SOAPFactory soapFactory, InputSource rootPart, MimePartProvider mimePartProvider) {
SourceInfo sourceInfo = createXMLStreamReader(configuration, rootPart, false);
- StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(
- nodeFactory,
+ SOAPModelBuilderImpl builder = new SOAPModelBuilderImpl(
new StAXPullInput(new XOPDecodingStreamReader(sourceInfo.getReader(), mimePartProvider), true, sourceInfo.getCloseable()),
+ nodeFactory, false,
mimePartProvider instanceof Detachable ? (Detachable)mimePartProvider : null);
if (builder.getSOAPMessage().getOMFactory() != soapFactory) {
throw new SOAPProcessingException("Invalid SOAP namespace URI. " +
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj Sat Mar 12 10:28:31 2016
@@ -34,9 +34,8 @@ import org.apache.axiom.om.OMXMLStreamRe
import org.apache.axiom.om.QNameAwareOMDataSource;
import org.apache.axiom.om.impl.common.DeferredNamespace;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
+import org.apache.axiom.om.impl.common.builder.BuilderImpl;
import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
-import org.apache.axiom.om.impl.common.builder.PushBuilder;
-import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.common.util.OMDataSourceUtil;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
import org.apache.axiom.om.impl.stream.ds.PushOMDataSourceInput;
@@ -220,7 +219,7 @@ public aspect AxiomSourcedElementSupport
if (OMDataSourceUtil.isPushDataSource(dataSource)) {
// Disable namespace repairing because the OMDataSource is required to produce well formed
// XML with respect to namespaces.
- builder = new PushBuilder(new PushOMDataSourceInput(this, dataSource), coreGetNodeFactory(), PlainXMLModel.INSTANCE, this, false);
+ builder = new BuilderImpl(new PushOMDataSourceInput(this, dataSource), coreGetNodeFactory(), PlainXMLModel.INSTANCE, this, false, null);
} else {
// Get the XMLStreamReader
XMLStreamReader readerFromDS;
@@ -229,7 +228,7 @@ public aspect AxiomSourcedElementSupport
} catch (XMLStreamException ex) {
throw new OMException("Error obtaining parser from data source for element " + getPrintableName(), ex);
}
- builder = new StAXOMBuilder(coreGetNodeFactory(), readerFromDS, this);
+ builder = new BuilderImpl(new StAXPullInput(readerFromDS), coreGetNodeFactory(), PlainXMLModel.INSTANCE, this, true, null);
}
isExpanded = true;
coreSetState(ATTRIBUTES_PENDING);
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java?rev=1734681&r1=1734680&r2=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/ds/PushOMDataSourceReader.java Sat Mar 12 10:28:31 2016
@@ -56,7 +56,9 @@ final class PushOMDataSourceReader imple
writer.setPrefix(ns.getPrefix(), ns.getNamespaceURI());
}
}
+ handler.startFragment();
dataSource.serialize(new PushOMDataSourceStreamWriter(writer));
+ handler.completed();
} catch (XMLStreamException ex) {
throw new StreamException(ex);
}
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModelBuilderImpl.java (from r1734655, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModelBuilderImpl.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModelBuilderImpl.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java&r1=1734655&r2=1734681&rev=1734681&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/StAXSOAPModelBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/common/builder/SOAPModelBuilderImpl.java Sat Mar 12 10:28:31 2016
@@ -24,8 +24,8 @@ import org.apache.axiom.core.NodeFactory
import org.apache.axiom.core.stream.XmlInput;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.impl.builder.Detachable;
+import org.apache.axiom.om.impl.common.builder.BuilderImpl;
import org.apache.axiom.om.impl.common.builder.BuilderListener;
-import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPMessage;
@@ -36,9 +36,9 @@ import org.apache.axiom.soap.impl.intf.A
/**
* Internal implementation class.
*/
-public class StAXSOAPModelBuilder extends StAXOMBuilder implements SOAPModelBuilder {
- public StAXSOAPModelBuilder(NodeFactory nodeFactory, XmlInput input, Detachable detachable) {
- super(nodeFactory, input, detachable, new SOAPModel(), null);
+public class SOAPModelBuilderImpl extends BuilderImpl implements SOAPModelBuilder {
+ public SOAPModelBuilderImpl(XmlInput input, NodeFactory nodeFactory, boolean repairNamespaces, Detachable detachable) {
+ super(input, nodeFactory, new SOAPModel(), null, true, detachable);
// The SOAPFactory instance linked to the SOAPMessage is unknown until we reach the
// SOAPEnvelope. Register a post-processor that does the necessary updates on the
// SOAPMessage.
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=1734681&r1=1734680&r2=1734681&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 Sat Mar 12 10:28:31 2016
@@ -28,19 +28,19 @@ import org.apache.axiom.core.CoreNode;
import org.apache.axiom.fom.AbderaNode;
import org.apache.axiom.fom.impl.FOMNodeFactory;
import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.impl.common.builder.BuilderImpl;
import org.apache.axiom.om.impl.common.builder.BuilderListener;
-import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.stream.stax.StAXPullInput;
@SuppressWarnings("unchecked")
-public class FOMBuilder extends StAXOMBuilder implements Constants {
+public class FOMBuilder extends BuilderImpl implements Constants {
private final FOMFactory fomfactory;
private final ParserOptions parserOptions;
public FOMBuilder(final FOMFactory factory, XMLStreamReader parser, ParserOptions parserOptions) {
- super(FOMNodeFactory.INSTANCE, new StAXPullInput(new FOMStAXFilter(parser, parserOptions), false, null), null,
- factory, null);
+ super(new StAXPullInput(new FOMStAXFilter(parser, parserOptions), false, null), FOMNodeFactory.INSTANCE,
+ factory, null, true, null); // TODO: probably we can use repairNamespaces=false here
this.parserOptions = parserOptions;
this.fomfactory = factory;
addListener(new BuilderListener() {