You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/09/01 00:18:10 UTC
svn commit: r1700364 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/
implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/
implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl...
Author: veithen
Date: Mon Aug 31 22:18:09 2015
New Revision: 1700364
URL: http://svn.apache.org/r1700364
Log:
AXIOM-471: Move the OMSourcedElement code to om-aspects and enable OMSourcedElement support for DOOM.
Added:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSourcedElementSupport.aj
- copied, changed from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java
- copied, changed from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/DeferredNamespace.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java
- copied, changed from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/PushOMBuilder.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java (with props)
Removed:
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/DeferredNamespace.java
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/PushOMBuilder.java
Modified:
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java
webservices/axiom/trunk/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
webservices/axiom/trunk/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSourcedElementSupport.aj (from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSourcedElementSupport.aj?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSourcedElementSupport.aj&p1=webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java&r1=1700360&r2=1700364&rev=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomSourcedElementSupport.aj Mon Aug 31 22:18:09 2015
@@ -16,16 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-package org.apache.axiom.om.impl.llom;
+package org.apache.axiom.om.impl.common;
import org.apache.axiom.core.ClonePolicy;
import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.core.CoreNode;
import org.apache.axiom.om.OMCloneOptions;
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMDataSourceExt;
import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
@@ -58,13 +57,13 @@ import java.util.Iterator;
* #forceExpand()} method) before the base class method is called. This will typically involve a
* heavy overhead penalty, so should be avoided if possible.</p>
*/
-public class OMSourcedElementImpl extends OMElementImpl implements AxiomSourcedElement {
+public aspect AxiomSourcedElementSupport {
/** Data source for element data. */
- private OMDataSource dataSource;
+ private OMDataSource AxiomSourcedElement.dataSource;
/** Namespace for element, needed in order to bypass base class handling. */
- private OMNamespace definedNamespace;
+ private OMNamespace AxiomSourcedElement.definedNamespace;
/**
* Flag indicating whether the {@link #definedNamespace} attribute has been set. If this flag is
@@ -73,21 +72,25 @@ public class OMSourcedElementImpl extend
* is always <code>null</code>) then the namespace is not known and needs to be determined
* lazily. The flag is used only if {@link #isExpanded} is <code>false</code>.
*/
- private boolean definedNamespaceSet;
+ private boolean AxiomSourcedElement.definedNamespaceSet;
/** Flag for parser provided to base element class. */
- private boolean isExpanded = true;
+ private boolean AxiomSourcedElement.isExpanded = true;
- private static final Log log = LogFactory.getLog(OMSourcedElementImpl.class);
+ private static final Log log = LogFactory.getLog(AxiomSourcedElementSupport.class);
- private static final Log forceExpandLog = LogFactory.getLog(OMSourcedElementImpl.class.getName() + ".forceExpand");
+ private static final Log forceExpandLog = LogFactory.getLog(AxiomSourcedElementSupport.class.getName() + ".forceExpand");
private static OMNamespace getOMNamespace(QName qName) {
return qName.getNamespaceURI().length() == 0 ? null
: new OMNamespaceImpl(qName.getNamespaceURI(), qName.getPrefix());
}
- public void init(OMDataSource source) {
+ public Class<? extends CoreNode> AxiomSourcedElement.coreGetNodeClass() {
+ return AxiomSourcedElement.class;
+ }
+
+ public void AxiomSourcedElement.init(OMDataSource source) {
dataSource = source;
isExpanded = false;
}
@@ -100,7 +103,7 @@ public class OMSourcedElementImpl extend
* @param factory
* @param source
*/
- public void init(String localName, OMNamespace ns, OMDataSource source) {
+ public void AxiomSourcedElement.init(String localName, OMNamespace ns, OMDataSource source) {
if (source == null) {
throw new IllegalArgumentException("OMDataSource can't be null");
}
@@ -131,7 +134,7 @@ public class OMSourcedElementImpl extend
* @param factory
* @param source
*/
- public void init(QName qName, OMDataSource source) {
+ public void AxiomSourcedElement.init(QName qName, OMDataSource source) {
if (source == null) {
throw new IllegalArgumentException("OMDataSource can't be null");
}
@@ -149,10 +152,6 @@ public class OMSourcedElementImpl extend
definedNamespaceSet = true;
}
- public OMSourcedElementImpl(OMFactory factory) {
- super(factory);
- }
-
/**
* The namespace uri is immutable, but the OMDataSource may change
* the value of the prefix. This method queries the OMDataSource to
@@ -175,7 +174,7 @@ public class OMSourcedElementImpl extend
*
* @return name
*/
- private String getPrintableName() {
+ private String AxiomSourcedElement.getPrintableName() {
if (isExpanded || (definedNamespaceSet && internalGetLocalName() != null)) {
String uri = null;
if (getNamespace() != null) {
@@ -195,7 +194,7 @@ public class OMSourcedElementImpl extend
* Set parser for OM, if not previously set. Since the builder is what actually constructs the
* tree on demand, this first creates a builder
*/
- public void forceExpand() {
+ public void AxiomSourcedElement.forceExpand() {
// The dataSource != null is required because this method may be called indirectly
// by the constructor before the data source is set. After the constructor has completed,
// isExpanded is always true if dataSource is null.
@@ -267,7 +266,7 @@ public class OMSourcedElementImpl extend
* @param staxLocalName
* @param staxNamespaceURI
*/
- void validateName(String staxPrefix, String staxLocalName, String staxNamespaceURI) {
+ void AxiomSourcedElement.validateName(String staxPrefix, String staxLocalName, String staxNamespaceURI) {
if (internalGetLocalName() == null) {
// The local name was not known in advance; initialize it from the reader
internalSetLocalName(staxLocalName);
@@ -305,11 +304,11 @@ public class OMSourcedElementImpl extend
*
* @return <code>true</code> if expanded, <code>false</code> if not
*/
- public boolean isExpanded() {
+ public boolean AxiomSourcedElement.isExpanded() {
return isExpanded;
}
- public XMLStreamReader getXMLStreamReader(boolean cache, OMXMLStreamReaderConfiguration configuration) {
+ public XMLStreamReader AxiomSourcedElement.getXMLStreamReader(boolean cache, OMXMLStreamReaderConfiguration configuration) {
if (log.isDebugEnabled()) {
log.debug("getting XMLStreamReader for " + getPrintableName()
+ " with cache=" + cache);
@@ -330,7 +329,7 @@ public class OMSourcedElementImpl extend
}
}
- public final void updateLocalName() {
+ public final void AxiomSourcedElement.updateLocalName() {
if (dataSource instanceof QNameAwareOMDataSource) {
internalSetLocalName(((QNameAwareOMDataSource)dataSource).getLocalName());
}
@@ -339,7 +338,7 @@ public class OMSourcedElementImpl extend
}
}
- public OMNamespace getNamespace() throws OMException {
+ public OMNamespace AxiomSourcedElement.getNamespace() throws OMException {
if (isExpanded()) {
return defaultGetNamespace();
} else if (definedNamespaceSet) {
@@ -377,7 +376,7 @@ public class OMSourcedElementImpl extend
}
}
- public QName getQName() {
+ public QName AxiomSourcedElement.getQName() {
if (isExpanded()) {
return defaultGetQName();
} else if (getNamespace() != null) {
@@ -388,8 +387,8 @@ public class OMSourcedElementImpl extend
}
}
- public <T> void initSource(ClonePolicy<T> policy, T options, CoreElement other) {
- OMSourcedElementImpl o = (OMSourcedElementImpl)other;
+ public <T> void AxiomSourcedElement.initSource(ClonePolicy<T> policy, T options, CoreElement other) {
+ AxiomSourcedElement o = (AxiomSourcedElement)other;
// If already expanded or this is not an OMDataSourceExt, then
// create a copy of the OM Tree
OMDataSource ds = o.getDataSource();
@@ -420,7 +419,7 @@ public class OMSourcedElementImpl extend
}
}
- public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
+ public void AxiomSourcedElement.internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
throws OutputException {
if (isExpanded()) {
defaultInternalSerialize(serializer, format, cache);
@@ -442,14 +441,14 @@ public class OMSourcedElementImpl extend
*
* @return the internal datasource
*/
- public OMDataSource getDataSource() {
+ public OMDataSource AxiomSourcedElement.getDataSource() {
return dataSource;
}
/**
* setOMDataSource
*/
- public OMDataSource setDataSource(OMDataSource dataSource) {
+ public OMDataSource AxiomSourcedElement.setDataSource(OMDataSource dataSource) {
if (!isExpanded()) {
OMDataSource oldDS = this.dataSource;
this.dataSource = dataSource;
@@ -481,7 +480,7 @@ public class OMSourcedElementImpl extend
* expansion process. Thus calls to setCompete should stop here and not propogate up to the
* parent (which may have a different builder or no builder).
*/
- public void setComplete(boolean complete) {
+ public void AxiomSourcedElement.setComplete(boolean complete) {
coreSetState(complete ? COMPLETE : INCOMPLETE);
if (complete && dataSource != null) {
if (dataSource instanceof OMDataSourceExt) {
@@ -491,7 +490,7 @@ public class OMSourcedElementImpl extend
}
}
- public Object getObject(Class dataSourceClass) {
+ public Object AxiomSourcedElement.getObject(Class dataSourceClass) {
if (dataSource == null || isExpanded || !dataSourceClass.isInstance(dataSource)) {
return null;
} else {
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java (from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/DeferredNamespace.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java&p1=webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/DeferredNamespace.java&r1=1700360&r2=1700364&rev=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/DeferredNamespace.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/DeferredNamespace.java Mon Aug 31 22:18:09 2015
@@ -16,17 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.llom;
+package org.apache.axiom.om.impl.common;
import org.apache.axiom.om.OMNamespace;
final class DeferredNamespace implements OMNamespace {
- private final OMSourcedElementImpl element;
+ private final AxiomSourcedElement element;
final String uri;
- DeferredNamespace(OMSourcedElementImpl omSourcedElementImpl, String ns) {
- element = omSourcedElementImpl;
+ DeferredNamespace(AxiomSourcedElement element, String ns) {
+ this.element = element;
this.uri = ns;
}
Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java (from r1700360, webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/PushOMBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java&p1=webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/PushOMBuilder.java&r1=1700360&r2=1700364&rev=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/PushOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/PushOMBuilder.java Mon Aug 31 22:18:09 2015
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.llom;
+package org.apache.axiom.om.impl.common;
import java.io.IOException;
import java.util.Iterator;
@@ -37,11 +37,11 @@ import org.apache.axiom.om.impl.builder.
import org.apache.axiom.util.stax.AbstractXMLStreamWriter;
public class PushOMBuilder extends AbstractXMLStreamWriter implements DataHandlerWriter {
- private final OMSourcedElementImpl root;
+ private final AxiomSourcedElement root;
private final OMFactoryEx factory;
private OMElement parent;
- public PushOMBuilder(OMSourcedElementImpl root) throws XMLStreamException {
+ public PushOMBuilder(AxiomSourcedElement root) throws XMLStreamException {
this.root = root;
factory = (OMFactoryEx)root.getOMFactory();
// Seed the namespace context with the namespace context from the parent
@@ -148,7 +148,7 @@ public class PushOMBuilder extends Abstr
// Use the internal appendAttribute method instead of addAttribute in order to avoid
// automatic of a namespace declaration (the OMDataSource is required to produce well formed
// XML with respect to namespaces, so it will take care of the namespace declarations).
- ((OMElementImpl)parent).internalAppendAttribute(attr);
+ ((AxiomElement)parent).internalAppendAttribute(attr);
}
protected void doWriteAttribute(String localName, String value) throws XMLStreamException {
@@ -156,7 +156,7 @@ public class PushOMBuilder extends Abstr
}
protected void doWriteNamespace(String prefix, String namespaceURI) {
- ((OMElementImpl)parent).addNamespaceDeclaration(getOMNamespace(prefix, namespaceURI, true));
+ ((AxiomElement)parent).addNamespaceDeclaration(getOMNamespace(prefix, namespaceURI, true));
}
protected void doWriteDefaultNamespace(String namespaceURI) {
Added: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java?rev=1700364&view=auto
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java (added)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java Mon Aug 31 22:18:09 2015
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axiom.om.impl.dom;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.impl.common.AxiomSourcedElement;
+
+public class OMSourcedElementImpl extends NSAwareElement implements AxiomSourcedElement {
+ public OMSourcedElementImpl(OMFactory factory) {
+ super(factory);
+ }
+}
Propchange: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/OMSourcedElementImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java Mon Aug 31 22:18:09 2015
@@ -60,6 +60,7 @@ import org.apache.axiom.om.impl.common.A
import org.apache.axiom.om.impl.common.AxiomEntityReference;
import org.apache.axiom.om.impl.common.AxiomNamespaceDeclaration;
import org.apache.axiom.om.impl.common.AxiomProcessingInstruction;
+import org.apache.axiom.om.impl.common.AxiomSourcedElement;
import org.apache.axiom.om.impl.common.factory.AxiomNodeFactory;
import org.apache.axiom.om.impl.dom.CDATASectionImpl;
import org.apache.axiom.om.impl.dom.CommentImpl;
@@ -72,6 +73,7 @@ import org.apache.axiom.om.impl.dom.NSAw
import org.apache.axiom.om.impl.dom.NSUnawareAttribute;
import org.apache.axiom.om.impl.dom.NSUnawareElement;
import org.apache.axiom.om.impl.dom.NamespaceDeclaration;
+import org.apache.axiom.om.impl.dom.OMSourcedElementImpl;
import org.apache.axiom.om.impl.dom.ProcessingInstructionImpl;
import org.apache.axiom.om.impl.dom.TextImpl;
import org.apache.axiom.soap.impl.common.AxiomSOAP11Body;
@@ -173,6 +175,8 @@ public class OMDOMFactory implements Axi
node = new NSUnawareElement(this);
} else if (type == CoreProcessingInstruction.class || type == AxiomProcessingInstruction.class || type == DOMProcessingInstruction.class) {
node = new ProcessingInstructionImpl(this);
+ } else if (type == AxiomSourcedElement.class) {
+ node = new OMSourcedElementImpl(this);
} else if (type == AxiomSOAPMessage.class) {
node = new SOAPMessageImpl(this);
} else if (type == AxiomSOAPEnvelope.class) {
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderBlockImpl.java Mon Aug 31 22:18:09 2015
@@ -19,44 +19,12 @@
package org.apache.axiom.soap.impl.dom;
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.dom.NSAwareElement;
+import org.apache.axiom.om.impl.dom.OMSourcedElementImpl;
import org.apache.axiom.soap.impl.common.AxiomSOAPHeaderBlock;
-public abstract class SOAPHeaderBlockImpl extends NSAwareElement implements AxiomSOAPHeaderBlock {
+public abstract class SOAPHeaderBlockImpl extends OMSourcedElementImpl implements AxiomSOAPHeaderBlock {
public SOAPHeaderBlockImpl(OMFactory factory) {
super(factory);
}
-
- public final void init(OMDataSource source) {
- throw new UnsupportedOperationException();
- }
-
- public final void init(String localName, OMNamespace ns, OMDataSource source) {
- throw new UnsupportedOperationException();
- }
-
- public final void init(QName qName, OMDataSource source) {
- throw new UnsupportedOperationException();
- }
-
- public OMDataSource getDataSource() {
- throw new UnsupportedOperationException();
- }
-
- public boolean isExpanded() {
- return true;
- }
-
- public OMDataSource setDataSource(OMDataSource dataSource) {
- throw new UnsupportedOperationException();
- }
-
- public Object getObject(Class dataSourceClass) {
- throw new UnsupportedOperationException();
- }
}
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java Mon Aug 31 22:18:09 2015
@@ -37,7 +37,7 @@ import org.apache.axiom.ts.om.sourcedele
public class OMImplementationTest extends TestCase {
public static TestSuite suite() {
- OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMDOMMetaFactory(), false);
+ OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMDOMMetaFactory());
// TODO: Axiom should throw an exception if an attempt is made to create a cyclic parent-child relationship
builder.exclude(TestInsertSiblingAfterOnChild.class);
Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java Mon Aug 31 22:18:09 2015
@@ -19,483 +19,11 @@
package org.apache.axiom.om.impl.llom;
-import org.apache.axiom.core.ClonePolicy;
-import org.apache.axiom.core.CoreElement;
-import org.apache.axiom.om.OMCloneOptions;
-import org.apache.axiom.om.OMDataSource;
-import org.apache.axiom.om.OMDataSourceExt;
-import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
-import org.apache.axiom.om.QNameAwareOMDataSource;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axiom.om.impl.common.AxiomSourcedElement;
-import org.apache.axiom.om.impl.common.OMDataSourceUtil;
-import org.apache.axiom.om.impl.common.OMNamespaceImpl;
-import org.apache.axiom.om.impl.common.serializer.push.OutputException;
-import org.apache.axiom.om.impl.common.serializer.push.Serializer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-import java.util.Iterator;
-
-/**
- * <p>Element backed by an arbitrary data source. When necessary, this element will be expanded by
- * creating a parser from the data source.</p>
- * <p/>
- * <p>Whenever methods are added to the base {@link OMElementImpl}
- * class the corresponding methods must be added to this class (there's a unit test to verify that
- * this has been done, just to make sure nothing gets accidentally broken). If the method only
- * requires the element name and/or namespace information, the base class method can be called
- * directly. Otherwise, the element must be expanded into a full OM tree (by calling the {@link
- * #forceExpand()} method) before the base class method is called. This will typically involve a
- * heavy overhead penalty, so should be avoided if possible.</p>
- */
public class OMSourcedElementImpl extends OMElementImpl implements AxiomSourcedElement {
-
- /** Data source for element data. */
- private OMDataSource dataSource;
-
- /** Namespace for element, needed in order to bypass base class handling. */
- private OMNamespace definedNamespace;
-
- /**
- * Flag indicating whether the {@link #definedNamespace} attribute has been set. If this flag is
- * <code>true</code> and {@link #definedNamespace} is <code>null</code> then the element has no
- * namespace. If this flag is set to <code>false</code> (in which case {@link #definedNamespace}
- * is always <code>null</code>) then the namespace is not known and needs to be determined
- * lazily. The flag is used only if {@link #isExpanded} is <code>false</code>.
- */
- private boolean definedNamespaceSet;
-
- /** Flag for parser provided to base element class. */
- private boolean isExpanded = true;
-
- private static final Log log = LogFactory.getLog(OMSourcedElementImpl.class);
-
- private static final Log forceExpandLog = LogFactory.getLog(OMSourcedElementImpl.class.getName() + ".forceExpand");
-
- private static OMNamespace getOMNamespace(QName qName) {
- return qName.getNamespaceURI().length() == 0 ? null
- : new OMNamespaceImpl(qName.getNamespaceURI(), qName.getPrefix());
- }
-
- public void init(OMDataSource source) {
- dataSource = source;
- isExpanded = false;
- }
-
- /**
- * Constructor.
- *
- * @param localName
- * @param ns
- * @param factory
- * @param source
- */
- public void init(String localName, OMNamespace ns, OMDataSource source) {
- if (source == null) {
- throw new IllegalArgumentException("OMDataSource can't be null");
- }
- internalSetLocalName(localName);
- dataSource = source;
- isExpanded = false;
- // Normalize the namespace. Note that this also covers the case where the
- // namespace URI is empty and the prefix is null (in which case we know that
- // the actual prefix must be empty)
- if (ns != null && ns.getNamespaceURI().length() == 0) {
- ns = null;
- }
- if (ns == null || !(isLossyPrefix(dataSource) || ns.getPrefix() == null)) {
- // Believe the prefix and create a normal OMNamespace
- definedNamespace = ns;
- } else {
- // Create a deferred namespace that forces an expand to get the prefix
- String uri = ns.getNamespaceURI();
- definedNamespace = new DeferredNamespace(this, uri);
- }
- definedNamespaceSet = true;
- }
-
- /**
- * Constructor that takes a QName instead of the local name and the namespace seperately
- *
- * @param qName
- * @param factory
- * @param source
- */
- public void init(QName qName, OMDataSource source) {
- if (source == null) {
- throw new IllegalArgumentException("OMDataSource can't be null");
- }
- internalSetLocalName(qName.getLocalPart());
- dataSource = source;
- isExpanded = false;
- if (!isLossyPrefix(dataSource)) {
- // Believe the prefix and create a normal OMNamespace
- definedNamespace = getOMNamespace(qName);
- } else {
- // Create a deferred namespace that forces an expand to get the prefix
- String uri = qName.getNamespaceURI();
- definedNamespace = uri.length() == 0 ? null : new DeferredNamespace(this, uri);
- }
- definedNamespaceSet = true;
- }
-
public OMSourcedElementImpl(OMFactory factory) {
super(factory);
}
-
- /**
- * The namespace uri is immutable, but the OMDataSource may change
- * the value of the prefix. This method queries the OMDataSource to
- * see if the prefix is known.
- * @param source
- * @return true or false
- */
- private static boolean isLossyPrefix(OMDataSource source) {
- Object lossyPrefix = null;
- if (source instanceof OMDataSourceExt) {
- lossyPrefix =
- ((OMDataSourceExt) source).getProperty(OMDataSourceExt.LOSSY_PREFIX);
-
- }
- return lossyPrefix == Boolean.TRUE;
- }
-
- /**
- * Generate element name for output.
- *
- * @return name
- */
- private String getPrintableName() {
- if (isExpanded || (definedNamespaceSet && internalGetLocalName() != null)) {
- String uri = null;
- if (getNamespace() != null) {
- uri = getNamespace().getNamespaceURI();
- }
- if (uri == null || uri.length() == 0) {
- return getLocalName();
- } else {
- return "{" + uri + '}' + getLocalName();
- }
- } else {
- return "<unknown>";
- }
- }
-
- /**
- * Set parser for OM, if not previously set. Since the builder is what actually constructs the
- * tree on demand, this first creates a builder
- */
- public void forceExpand() {
- // The dataSource != null is required because this method may be called indirectly
- // by the constructor before the data source is set. After the constructor has completed,
- // isExpanded is always true if dataSource is null.
- if (!isExpanded && dataSource != null) {
-
- if (log.isDebugEnabled()) {
- log.debug("forceExpand: expanding element " +
- getPrintableName());
- if(forceExpandLog.isDebugEnabled()){
- // When using an OMSourcedElement, it can be particularly difficult to
- // determine why an expand occurs... a stack trace should help debugging this
- Exception e = new Exception("Debug Stack Trace");
- forceExpandLog.debug("forceExpand stack", e);
- }
- }
-
- if (OMDataSourceUtil.isPushDataSource(dataSource)) {
- // Set this before we start expanding; otherwise this would result in an infinite recursion
- isExpanded = true;
- try {
- dataSource.serialize(new PushOMBuilder(this));
- } catch (XMLStreamException ex) {
- throw new OMException("Failed to expand data source", ex);
- }
- } else {
- // Get the XMLStreamReader
- XMLStreamReader readerFromDS;
- try {
- readerFromDS = dataSource.getReader();
- } catch (XMLStreamException ex) {
- throw new OMException("Error obtaining parser from data source for element " + getPrintableName(), ex);
- }
-
- // Advance past the START_DOCUMENT to the start tag.
- // Remember the character encoding.
- String characterEncoding = readerFromDS.getCharacterEncodingScheme();
- if (characterEncoding != null) {
- characterEncoding = readerFromDS.getEncoding();
- }
- try {
- if (readerFromDS.getEventType() != XMLStreamConstants.START_ELEMENT) {
- while (readerFromDS.next() != XMLStreamConstants.START_ELEMENT) ;
- }
- } catch (XMLStreamException ex) {
- throw new OMException("Error parsing data source document for element " + getLocalName(), ex);
- }
-
- validateName(readerFromDS.getPrefix(), readerFromDS.getLocalName(), readerFromDS.getNamespaceURI());
-
- // Set the builder for this element. Note that the StAXOMBuilder constructor will also
- // update the namespace of the element, so we don't need to do that here.
- isExpanded = true;
- StAXOMBuilder builder = new StAXOMBuilder(getOMFactory(), readerFromDS, this, characterEncoding);
- builder.setAutoClose(true);
- coreSetBuilder(builder);
- setComplete(false);
- }
- }
- }
-
- /**
- * Validates that the actual name of the element obtained from StAX matches the information
- * specified when the sourced element was constructed or retrieved through the
- * {@link QNameAwareOMDataSource} interface. Also updates the local name if necessary. Note that
- * the namespace information is not updated; this is the responsibility of the builder (and is
- * done at the same time as namespace repairing).
- *
- * @param staxPrefix
- * @param staxLocalName
- * @param staxNamespaceURI
- */
- void validateName(String staxPrefix, String staxLocalName, String staxNamespaceURI) {
- if (internalGetLocalName() == null) {
- // The local name was not known in advance; initialize it from the reader
- internalSetLocalName(staxLocalName);
- } else {
- // Make sure element local name and namespace matches what was expected
- if (!staxLocalName.equals(internalGetLocalName())) {
- throw new OMException("Element name from data source is " +
- staxLocalName + ", not the expected " + internalGetLocalName());
- }
- }
- if (definedNamespaceSet) {
- if (staxNamespaceURI == null) {
- staxNamespaceURI = "";
- }
- String namespaceURI = definedNamespace == null ? "" : definedNamespace.getNamespaceURI();
- if (!staxNamespaceURI.equals(namespaceURI)) {
- throw new OMException("Element namespace from data source is " +
- staxNamespaceURI + ", not the expected " + namespaceURI);
- }
- if (!(definedNamespace instanceof DeferredNamespace)) {
- if (staxPrefix == null) {
- staxPrefix = "";
- }
- String prefix = definedNamespace == null ? "" : definedNamespace.getPrefix();
- if (!staxPrefix.equals(prefix)) {
- throw new OMException("Element prefix from data source is '" +
- staxPrefix + "', not the expected '" + prefix + "'");
- }
- }
- }
- }
-
- /**
- * Check if element has been expanded into tree.
- *
- * @return <code>true</code> if expanded, <code>false</code> if not
- */
- public boolean isExpanded() {
- return isExpanded;
- }
-
- public XMLStreamReader getXMLStreamReader(boolean cache, OMXMLStreamReaderConfiguration configuration) {
- if (log.isDebugEnabled()) {
- log.debug("getting XMLStreamReader for " + getPrintableName()
- + " with cache=" + cache);
- }
- if (isExpanded) {
- return defaultGetXMLStreamReader(cache, configuration);
- } else {
- if ((cache && OMDataSourceUtil.isDestructiveRead(dataSource)) || OMDataSourceUtil.isPushDataSource(dataSource)) {
- forceExpand();
- return defaultGetXMLStreamReader(true, configuration);
- } else {
- try {
- return dataSource.getReader();
- } catch (XMLStreamException ex) {
- throw new OMException("Error obtaining parser from data source for element " + getPrintableName(), ex);
- }
- }
- }
- }
-
- public final void updateLocalName() {
- if (dataSource instanceof QNameAwareOMDataSource) {
- internalSetLocalName(((QNameAwareOMDataSource)dataSource).getLocalName());
- }
- if (internalGetLocalName() == null) {
- forceExpand();
- }
- }
-
- public OMNamespace getNamespace() throws OMException {
- if (isExpanded()) {
- return defaultGetNamespace();
- } else if (definedNamespaceSet) {
- return definedNamespace;
- } else {
- if (dataSource instanceof QNameAwareOMDataSource) {
- String namespaceURI = ((QNameAwareOMDataSource)dataSource).getNamespaceURI();
- if (namespaceURI != null) {
- if (namespaceURI.length() == 0) {
- // No namespace case. definedNamespace is already null, so we only need
- // to set definedNamespaceSet to true. Note that we don't need to retrieve
- // the namespace prefix because a prefix can't be bound to the empty
- // namespace URI.
- definedNamespaceSet = true;
- } else {
- String prefix = ((QNameAwareOMDataSource)dataSource).getPrefix();
- if (prefix == null) {
- // Prefix is unknown
- definedNamespace = new DeferredNamespace(this, namespaceURI);
- } else {
- definedNamespace = new OMNamespaceImpl(namespaceURI, prefix);
- }
- definedNamespaceSet = true;
- }
- }
- }
- if (definedNamespaceSet) {
- return definedNamespace;
- } else {
- // We have no information about the namespace of the element. Need to expand
- // the element to get it.
- forceExpand();
- return defaultGetNamespace();
- }
- }
- }
-
- public QName getQName() {
- if (isExpanded()) {
- return defaultGetQName();
- } else if (getNamespace() != null) {
- // always ignore prefix on name from sourced element
- return new QName(getNamespace().getNamespaceURI(), getLocalName());
- } else {
- return new QName(getLocalName());
- }
- }
-
- public <T> void initSource(ClonePolicy<T> policy, T options, CoreElement other) {
- OMSourcedElementImpl o = (OMSourcedElementImpl)other;
- // If already expanded or this is not an OMDataSourceExt, then
- // create a copy of the OM Tree
- OMDataSource ds = o.getDataSource();
- if (!(options instanceof OMCloneOptions) || !((OMCloneOptions)options).isCopyOMDataSources() ||
- ds == null ||
- o.isExpanded() ||
- !(ds instanceof OMDataSourceExt)) {
- return;
- }
-
- // If copying is destructive, then copy the OM tree
- OMDataSourceExt sourceDS = (OMDataSourceExt) ds;
- if (sourceDS.isDestructiveRead() ||
- sourceDS.isDestructiveWrite()) {
- return;
- }
- OMDataSourceExt targetDS = ((OMDataSourceExt) ds).copy();
- if (targetDS == null) {
- return;
- }
- // Otherwise create a target OMSE with the copied DataSource
- init(targetDS);
- definedNamespaceSet = o.definedNamespaceSet;
- if (o.definedNamespace instanceof DeferredNamespace) {
- definedNamespace = new DeferredNamespace(this, o.definedNamespace.getNamespaceURI());
- } else {
- definedNamespace = o.definedNamespace;
- }
- }
-
- public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
- throws OutputException {
- if (isExpanded()) {
- defaultInternalSerialize(serializer, format, cache);
- } else if (cache) {
- if (OMDataSourceUtil.isDestructiveWrite(dataSource)) {
- forceExpand();
- defaultInternalSerialize(serializer, format, true);
- } else {
- serializer.serialize(dataSource);
- }
- } else {
- serializer.serialize(dataSource);
- }
- }
-
- /**
- * Provide access to the data source encapsulated in OMSourcedElement.
- * This is usesful when we want to access the raw data in the data source.
- *
- * @return the internal datasource
- */
- public OMDataSource getDataSource() {
- return dataSource;
- }
-
- /**
- * setOMDataSource
- */
- public OMDataSource setDataSource(OMDataSource dataSource) {
- if (!isExpanded()) {
- OMDataSource oldDS = this.dataSource;
- this.dataSource = dataSource;
- return oldDS; // Caller is responsible for closing the data source
- } else {
- // TODO
- // Remove the entire subtree and replace with
- // new datasource. There maybe a more performant way to do this.
- OMDataSource oldDS = this.dataSource;
- Iterator it = getChildren();
- while(it.hasNext()) {
- it.next();
- it.remove();
- }
- this.dataSource = dataSource;
- setComplete(false);
- isExpanded = false;
- coreSetBuilder(null);
- if (isLossyPrefix(dataSource)) {
- // Create a deferred namespace that forces an expand to get the prefix
- definedNamespace = new DeferredNamespace(this, definedNamespace.getNamespaceURI());
- }
- return oldDS;
- }
- }
-
- /**
- * setComplete override The OMSourcedElement has its own isolated builder/reader during the
- * expansion process. Thus calls to setCompete should stop here and not propogate up to the
- * parent (which may have a different builder or no builder).
- */
- public void setComplete(boolean complete) {
- coreSetState(complete ? COMPLETE : INCOMPLETE);
- if (complete && dataSource != null) {
- if (dataSource instanceof OMDataSourceExt) {
- ((OMDataSourceExt)dataSource).close();
- }
- dataSource = null;
- }
- }
-
- public Object getObject(Class dataSourceClass) {
- if (dataSource == null || isExpanded || !dataSourceClass.isInstance(dataSource)) {
- return null;
- } else {
- return ((OMDataSourceExt)dataSource).getObject();
- }
- }
}
Modified: webservices/axiom/trunk/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java Mon Aug 31 22:18:09 2015
@@ -34,7 +34,7 @@ import org.apache.axiom.ts.om.sourcedele
public class OMImplementationTest extends TestCase {
public static TestSuite suite() {
- OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMLinkedListMetaFactory(), true);
+ OMTestSuiteBuilder builder = new OMTestSuiteBuilder(new OMLinkedListMetaFactory());
// TODO: Axiom should throw an exception if an attempt is made to create a cyclic parent-child relationship
builder.exclude(TestInsertSiblingAfterOnChild.class);
builder.exclude(TestInsertSiblingBeforeOnChild.class);
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Mon Aug 31 22:18:09 2015
@@ -57,11 +57,9 @@ public class OMTestSuiteBuilder extends
new QName("urn:test", "root") };
private final OMMetaFactory metaFactory;
- private final boolean supportsOMSourcedElement;
- public OMTestSuiteBuilder(OMMetaFactory metaFactory, boolean supportsOMSourcedElement) {
+ public OMTestSuiteBuilder(OMMetaFactory metaFactory) {
this.metaFactory = metaFactory;
- this.supportsOMSourcedElement = supportsOMSourcedElement;
}
protected void addTests() {
@@ -455,10 +453,8 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNamespaceInScope4(metaFactory, variant));
}
}
- if (supportsOMSourcedElement) {
- addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNullOMDataSource1(metaFactory));
- addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNullOMDataSource2(metaFactory));
- }
+ addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNullOMDataSource1(metaFactory));
+ addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNullOMDataSource2(metaFactory));
addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElementWithNullURIAndPrefix(metaFactory));
addTest(new org.apache.axiom.ts.om.factory.TestCreateOMEntityReference(metaFactory));
addTest(new org.apache.axiom.ts.om.factory.TestCreateOMEntityReferenceWithNullParent(metaFactory));
@@ -499,104 +495,102 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.node.TestInsertSiblingBeforeOnOrphan(metaFactory));
addTest(new org.apache.axiom.ts.om.node.TestInsertSiblingBeforeOnSelf(metaFactory));
addTest(new org.apache.axiom.ts.om.node.TestInsertSiblingBeforeSameParent(metaFactory));
- if (supportsOMSourcedElement) {
- for (int i=0; i<OMSourcedElementVariant.INSTANCES.length; i++) {
- OMSourcedElementVariant variant = OMSourcedElementVariant.INSTANCES[i];
- for (int j=0; j<qnames.length; j++) {
- QName qname = qnames[j];
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetLocalName(metaFactory, variant, qname));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespace(metaFactory, variant, qname));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetPrefix(metaFactory, variant, qname));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespaceURI(metaFactory, variant, qname));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestHasName(metaFactory, variant, qname));
- }
+ for (int i=0; i<OMSourcedElementVariant.INSTANCES.length; i++) {
+ OMSourcedElementVariant variant = OMSourcedElementVariant.INSTANCES[i];
+ for (int j=0; j<qnames.length; j++) {
+ QName qname = qnames[j];
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetLocalName(metaFactory, variant, qname));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespace(metaFactory, variant, qname));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetPrefix(metaFactory, variant, qname));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetNamespaceURI(metaFactory, variant, qname));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestHasName(metaFactory, variant, qname));
}
- for (AddAttributeStrategy strategy : getInstances(AddAttributeStrategy.class)) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestAddAttribute(metaFactory, strategy));
- }
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestByteArrayDS(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestCharArrayDS(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive(metaFactory, true));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive(metaFactory, false));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneUnknownName(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloseOnComplete(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestComplete(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestDeclareNamespace(metaFactory));
+ }
+ for (AddAttributeStrategy strategy : getInstances(AddAttributeStrategy.class)) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestAddAttribute(metaFactory, strategy));
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestByteArrayDS(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestCharArrayDS(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive(metaFactory, true));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive(metaFactory, false));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloneUnknownName(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestCloseOnComplete(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestComplete(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestDeclareNamespace(metaFactory));
+ for (ExpansionStrategy es : getInstances(ExpansionStrategy.class)) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestDetach(metaFactory, es));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestDiscard(metaFactory, es));
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestExpand(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAllAttributes(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAllDeclaredNamespaces(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAttribute(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAttributeValue(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));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetObject(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetReaderException(metaFactory));
+ for (int i=0; i<PushOMDataSourceScenario.INSTANCES.length; i++) {
+ PushOMDataSourceScenario scenario = PushOMDataSourceScenario.INSTANCES[i];
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, false));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, true));
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetTextAsStreamWithNonDestructiveOMDataSource(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestInputStreamDS(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1DefaultPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1QualifiedPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1Unqualified(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2DefaultPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2QualifiedPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2Unqualified(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3DefaultPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3QualifiedPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3Unqualified(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4DefaultPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4QualifiedPrefix(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4Unqualified(metaFactory));
+ for (int i=0; i<PushOMDataSourceScenario.INSTANCES.length; i++) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestPushOMDataSourceExpansion(metaFactory, PushOMDataSourceScenario.INSTANCES[i]));
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestRemoveChildrenUnexpanded(metaFactory));
+ for (ElementContext ec : getInstances(ElementContext.class)) {
for (ExpansionStrategy es : getInstances(ExpansionStrategy.class)) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestDetach(metaFactory, es));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestDiscard(metaFactory, es));
- }
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestExpand(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAllAttributes(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAllDeclaredNamespaces(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAttribute(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetAttributeValue(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));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetObject(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetReaderException(metaFactory));
- for (int i=0; i<PushOMDataSourceScenario.INSTANCES.length; i++) {
- PushOMDataSourceScenario scenario = PushOMDataSourceScenario.INSTANCES[i];
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, false));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetSAXSourceWithPushOMDataSource(metaFactory, scenario, true));
- }
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestGetTextAsStreamWithNonDestructiveOMDataSource(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestInputStreamDS(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1DefaultPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1QualifiedPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName1Unqualified(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2DefaultPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2QualifiedPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName2Unqualified(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3DefaultPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3QualifiedPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName3Unqualified(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4DefaultPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4QualifiedPrefix(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestName4Unqualified(metaFactory));
- for (int i=0; i<PushOMDataSourceScenario.INSTANCES.length; i++) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestPushOMDataSourceExpansion(metaFactory, PushOMDataSourceScenario.INSTANCES[i]));
- }
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestRemoveChildrenUnexpanded(metaFactory));
- for (ElementContext ec : getInstances(ElementContext.class)) {
- for (ExpansionStrategy es : getInstances(ExpansionStrategy.class)) {
- for (SerializationStrategy ss : getInstances(SerializationStrategy.class)) {
- for (int count = 1; count <= 2; count++) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, false, ec, es, ss, false, count));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, true, ec, es, ss, false, count));
+ for (SerializationStrategy ss : getInstances(SerializationStrategy.class)) {
+ for (int count = 1; count <= 2; count++) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, false, ec, es, ss, false, count));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, true, ec, es, ss, false, count));
+ if (ec != ElementContext.ORPHAN) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, false, ec, es, ss, true, count));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, true, ec, es, ss, true, count));
+ }
+ if (es != ExpansionStrategy.PARTIAL) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, false, ec, es, ss, false, count));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, true, ec, es, ss, false, count));
if (ec != ElementContext.ORPHAN) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, false, ec, es, ss, true, count));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, false, true, ec, es, ss, true, count));
- }
- if (es != ExpansionStrategy.PARTIAL) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, false, ec, es, ss, false, count));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, true, ec, es, ss, false, count));
- if (ec != ElementContext.ORPHAN) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, false, ec, es, ss, true, count));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, true, ec, es, ss, true, count));
- }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, false, ec, es, ss, true, count));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerialize(metaFactory, true, true, ec, es, ss, true, count));
}
}
}
}
}
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeModifiedOMSEWithNonDestructiveDataSource(metaFactory));
- for (SerializationStrategy ss : getInstances(SerializationStrategy.class)) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, false));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, true));
- }
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSource(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSourceOnAlreadyExpandedElement(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetLocalName(metaFactory, false));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetLocalName(metaFactory, true));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestWrappedTextNodeOMDataSourceFromReader(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.TestWriteTextToWithNonDestructiveOMDataSource(metaFactory));
- addTest(new org.apache.axiom.ts.om.sourcedelement.sr.TestGetName(metaFactory));
- for (int events = 0; events < 7; events++) {
- addTest(new org.apache.axiom.ts.om.sourcedelement.sr.TestCloseWithoutCaching(metaFactory, events));
- }
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeModifiedOMSEWithNonDestructiveDataSource(metaFactory));
+ for (SerializationStrategy ss : getInstances(SerializationStrategy.class)) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, false));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, true));
+ }
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSource(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSourceOnAlreadyExpandedElement(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetLocalName(metaFactory, false));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetLocalName(metaFactory, true));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestWrappedTextNodeOMDataSourceFromReader(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.TestWriteTextToWithNonDestructiveOMDataSource(metaFactory));
+ addTest(new org.apache.axiom.ts.om.sourcedelement.sr.TestGetName(metaFactory));
+ for (int events = 0; events < 7; events++) {
+ addTest(new org.apache.axiom.ts.om.sourcedelement.sr.TestCloseWithoutCaching(metaFactory, events));
}
addTest(new org.apache.axiom.ts.om.pi.TestDigest(metaFactory));
addTest(new org.apache.axiom.ts.om.text.TestBase64StreamingWithGetSAXSource(metaFactory));
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java?rev=1700364&r1=1700363&r2=1700364&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java Mon Aug 31 22:18:09 2015
@@ -56,7 +56,7 @@ public class TestDetach extends AxiomTes
omse.detach();
ASSERT.that(ds.hasUnclosedReaders()).isEqualTo(expansionStrategy == PARTIAL);
ASSERT.that(ds.getReaderRequestCount()).isEqualTo(expansionStrategy == DONT_EXPAND ? 0 : 1);
- ASSERT.about(xml()).that(parent).hasSameContentAs(xml1);
- ASSERT.about(xml()).that(omse).hasSameContentAs(xml2);
+ ASSERT.about(xml()).that(xml(OMElement.class, parent)).hasSameContentAs(xml1);
+ ASSERT.about(xml()).that(xml(OMElement.class, omse)).hasSameContentAs(xml2);
}
}