This is an automated email from the ASF dual-hosted git repository.
veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git
The following commit(s) were added to refs/heads/master by this push:
new 1d0f792 Avoid super call in NSAwareElement.normalize()
1d0f792 is described below
commit 1d0f792f6ba49d8b4833caabc3637f5fc575949e
Author: Andreas Veithen <[email protected]>
AuthorDate: Wed May 20 21:03:05 2020 +0100
Avoid super call in NSAwareElement.normalize()
Super call don't play nicely with mixins.
---
.../src/main/java/org/apache/axiom/dom/DOMNode.java | 2 +-
.../java/org/apache/axiom/dom/DOMProcessingInstruction.java | 2 +-
.../org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj | 4 ++++
.../apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj | 4 ++++
.../org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj | 5 ++++-
.../apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj | 4 ++++
.../org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj | 4 ++++
.../java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj | 6 ------
.../org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj | 7 +++++--
.../mixin/NSUnawareElementSupport.aj} | 11 ++++++-----
.../java/org/apache/axiom/om/impl/dom/NSAwareElement.java | 3 +--
11 files changed, 34 insertions(+), 18 deletions(-)
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
index 1e0a9a5..b84d15a 100644
--- a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
+++ b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
@@ -35,5 +35,5 @@ public interface DOMNode extends Node, CoreNode {
*/
CoreElement getNamespaceContext();
- void normalize(DOMConfigurationImpl config);
+ void normalizeRecursively(DOMConfigurationImpl config);
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
index 2ccd054..9afc2a2 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
@@ -21,6 +21,6 @@ package org.apache.axiom.dom;
import org.apache.axiom.shared.IProcessingInstruction;
import org.w3c.dom.ProcessingInstruction;
-public interface DOMProcessingInstruction extends DOMChildNode,
ProcessingInstruction, IProcessingInstruction {
+public interface DOMProcessingInstruction extends DOMLeafNode,
ProcessingInstruction, IProcessingInstruction {
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
index 51bb6eb..875ce91 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
import org.apache.axiom.core.CoreElement;
import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.dom.DOMAttribute;
+import org.apache.axiom.dom.DOMConfigurationImpl;
import org.apache.axiom.dom.DOMExceptionUtil;
import org.apache.axiom.dom.DOMSemantics;
import org.w3c.dom.DOMException;
@@ -99,4 +100,7 @@ public aspect DOMAttributeSupport {
// TODO
throw new UnsupportedOperationException();
}
+
+ public final void DOMAttribute.normalize(DOMConfigurationImpl config) {
+ }
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
index d53cf44..12d0552 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
@@ -23,6 +23,7 @@ import static
org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
import org.apache.axiom.core.CoreElement;
import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.core.ElementAction;
+import org.apache.axiom.dom.DOMConfigurationImpl;
import org.apache.axiom.dom.DOMDocumentFragment;
import org.apache.axiom.dom.DOMExceptionUtil;
import org.apache.axiom.dom.DOMSemantics;
@@ -94,4 +95,7 @@ public aspect DOMDocumentFragmentSupport {
throw DOMExceptionUtil.toUncheckedException(ex);
}
}
+
+ public final void DOMDocumentFragment.normalize(DOMConfigurationImpl
config) {
+ }
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
index f01a294..aecd6f1 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
@@ -181,7 +181,7 @@ public aspect DOMDocumentSupport {
|| domConfig.isEnabled(DOMConfigurationImpl.WELLFORMED)) {
throw new UnsupportedOperationException("TODO");
} else {
- normalize(domConfig);
+ normalizeRecursively(domConfig);
}
}
@@ -427,4 +427,7 @@ public aspect DOMDocumentSupport {
public final void DOMDocument.setStrictErrorChecking(boolean
strictErrorChecking) {
this.strictErrorChecking = strictErrorChecking;
}
+
+ public final void DOMDocument.normalize(DOMConfigurationImpl config) {
+ }
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
index 0c8f95f..71e305b 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.dom.DOMConfigurationImpl;
import org.apache.axiom.dom.DOMEntityReference;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
@@ -115,4 +116,7 @@ public aspect DOMEntityReferenceSupport {
public final Node DOMEntityReference.replaceChild(Node newChild, Node
oldChild) throws DOMException {
throw newDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
}
+
+ public final void
DOMEntityReference.normalizeRecursively(DOMConfigurationImpl config) {
+ }
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
index f1d1775..c790e58 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.dom.DOMConfigurationImpl;
import org.apache.axiom.dom.DOMLeafNode;
import org.apache.axiom.dom.EmptyNodeList;
import org.w3c.dom.DOMException;
@@ -101,4 +102,7 @@ public aspect DOMLeafNodeSupport {
public final CoreElement DOMLeafNode.getNamespaceContext() {
return coreGetParentElement();
}
+
+ public final void DOMLeafNode.normalizeRecursively(DOMConfigurationImpl
config) {
+ }
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
index 30b6de6..089dbd3 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
@@ -20,7 +20,6 @@ package org.apache.axiom.dom.impl.mixin;
import org.apache.axiom.core.CoreElement;
import org.apache.axiom.core.CoreModelException;
-import org.apache.axiom.dom.DOMConfigurationImpl;
import org.apache.axiom.dom.DOMDocument;
import org.apache.axiom.dom.DOMExceptionUtil;
import org.apache.axiom.dom.DOMNode;
@@ -29,11 +28,6 @@ import org.apache.axiom.dom.DOMSemantics;
import org.w3c.dom.Node;
public aspect DOMNodeSupport {
- // TODO: should eventually have package access
- public void DOMNode.normalize(DOMConfigurationImpl config) {
- // Default: do nothing
- }
-
public final boolean DOMNode.isSupported(String feature, String version) {
return
((DOMNodeFactory)coreGetNodeFactory()).getDOMImplementation().hasFeature(feature,
version);
}
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
index db19183..01b18da 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
@@ -91,11 +91,12 @@ public aspect DOMParentNodeSupport {
}
}
- public void DOMParentNode.normalize(DOMConfigurationImpl config) {
+ public final void DOMParentNode.normalizeRecursively(DOMConfigurationImpl
config) {
try {
+ normalize(config);
CoreChildNode child = coreGetFirstChild();
while (child != null) {
- ((DOMNode)child).normalize(config);
+ ((DOMNode)child).normalizeRecursively(config);
child = child.coreGetNextSibling();
}
} catch (CoreModelException ex) {
@@ -103,6 +104,8 @@ public aspect DOMParentNodeSupport {
}
}
+ public abstract void DOMParentNode.normalize(DOMConfigurationImpl config);
+
private void DOMParentNode.checkNewChild(Node newChild) {
if (newChild instanceof DOMNode) {
DOMNode newDomChild = (DOMNode)newChild;
diff --git
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
similarity index 74%
copy from
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
copy to
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
index 2ccd054..801276b 100644
---
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
+++
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
@@ -16,11 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.dom;
+package org.apache.axiom.dom.impl.mixin;
-import org.apache.axiom.shared.IProcessingInstruction;
-import org.w3c.dom.ProcessingInstruction;
-
-public interface DOMProcessingInstruction extends DOMChildNode,
ProcessingInstruction, IProcessingInstruction {
+import org.apache.axiom.dom.DOMConfigurationImpl;
+import org.apache.axiom.dom.DOMNSUnawareElement;;
+public aspect NSUnawareElementSupport {
+ public final void DOMNSUnawareElement.normalize(DOMConfigurationImpl
config) {
+ }
}
diff --git
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
index 822373f..30fd181 100644
---
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
+++
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
@@ -27,7 +27,7 @@ import org.apache.axiom.om.impl.intf.AxiomElement;
/** Implementation of the org.w3c.dom.Element and org.apache.axiom.om.Element
interfaces. */
public class NSAwareElement extends ElementImpl implements DOMNSAwareElement,
AxiomElement {
- public void normalize(DOMConfigurationImpl config) {
+ public final void normalize(DOMConfigurationImpl config) {
if (config.isEnabled(DOMConfigurationImpl.NAMESPACES)) {
OMNamespace namespace = getNamespace();
if (namespace == null) {
@@ -41,6 +41,5 @@ public class NSAwareElement extends ElementImpl implements
DOMNSAwareElement, Ax
}
}
}
- super.normalize(config);
}
}