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 2017/06/09 18:51:16 UTC

svn commit: r1798259 - in /webservices/axiom/trunk: aspects/dom-aspects/src/main/java/org/apache/axiom/dom/ aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/ implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/

Author: veithen
Date: Fri Jun  9 18:51:16 2017
New Revision: 1798259

URL: http://svn.apache.org/viewvc?rev=1798259&view=rev
Log:
Don't weave DOOMNodeFactory.

Added:
    webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMImplementationImpl.java
      - copied, changed from r1798258, webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeFactorySupport.aj
Removed:
    webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeFactorySupport.aj
Modified:
    webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeFactory.java
    webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
    webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMNodeFactory.java
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java

Copied: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMImplementationImpl.java (from r1798258, webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeFactorySupport.aj)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMImplementationImpl.java?p2=webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMImplementationImpl.java&p1=webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeFactorySupport.aj&r1=1798258&r2=1798259&rev=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeFactorySupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMImplementationImpl.java Fri Jun  9 18:51:16 2017
@@ -16,28 +16,35 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.dom.impl.mixin;
+package org.apache.axiom.dom;
 
-import org.apache.axiom.dom.DOMDocument;
-import org.apache.axiom.dom.DOMDocumentType;
-import org.apache.axiom.dom.DOMNodeFactory;
+import org.apache.axiom.core.NodeFactory;
 import org.w3c.dom.DOMException;
+import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentType;
 import org.w3c.dom.Element;
 
-public aspect DOMNodeFactorySupport {
-    public boolean DOMNodeFactory.hasFeature(String feature, String version) {
+public final class DOMImplementationImpl implements DOMImplementation {
+    private final NodeFactory nodeFactory;
+
+    public DOMImplementationImpl(NodeFactory nodeFactory) {
+        this.nodeFactory = nodeFactory;
+    }
+
+    @Override
+    public boolean hasFeature(String feature, String version) {
         boolean anyVersion = version == null || version.length() == 0;
         return (feature.equalsIgnoreCase("Core") || feature.equalsIgnoreCase("XML"))
                 && (anyVersion || version.equals("1.0") || version.equals("2.0") || version.equals("3.0"));
     }
 
-    public Document DOMNodeFactory.createDocument(String namespaceURI, String qualifiedName,
+    @Override
+    public Document createDocument(String namespaceURI, String qualifiedName,
                                    DocumentType doctype) throws DOMException {
 
         // TODO Handle docType stuff
-        DOMDocument doc = createNode(DOMDocument.class);
+        DOMDocument doc = nodeFactory.createNode(DOMDocument.class);
 
         Element element = doc.createElementNS(namespaceURI, qualifiedName);
         doc.appendChild(element);
@@ -45,9 +52,10 @@ public aspect DOMNodeFactorySupport {
         return doc;
     }
 
-    public DocumentType DOMNodeFactory.createDocumentType(String qualifiedName,
+    @Override
+    public DocumentType createDocumentType(String qualifiedName,
                                            String publicId, String systemId) {
-        DOMDocumentType docType = createNode(DOMDocumentType.class);
+        DOMDocumentType docType = nodeFactory.createNode(DOMDocumentType.class);
         docType.coreSetRootName(qualifiedName);
         docType.coreSetPublicId(publicId);
         docType.coreSetSystemId(systemId);
@@ -58,7 +66,8 @@ public aspect DOMNodeFactorySupport {
      * DOM-Level 3 methods
      */
 
-    public Object DOMNodeFactory.getFeature(String feature, String version) {
+    @Override
+    public Object getFeature(String feature, String version) {
         // TODO TODO
         throw new UnsupportedOperationException("TODO");
     }

Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeFactory.java?rev=1798259&r1=1798258&r2=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeFactory.java (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeFactory.java Fri Jun  9 18:51:16 2017
@@ -21,6 +21,6 @@ package org.apache.axiom.dom;
 import org.apache.axiom.core.NodeFactory;
 import org.w3c.dom.DOMImplementation;
 
-public interface DOMNodeFactory extends NodeFactory, DOMImplementation {
-
+public interface DOMNodeFactory extends NodeFactory {
+    DOMImplementation getDOMImplementation();
 }

Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj?rev=1798259&r1=1798258&r2=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj Fri Jun  9 18:51:16 2017
@@ -144,7 +144,7 @@ public aspect DOMDocumentSupport {
     }
 
     public final DOMImplementation DOMDocument.getImplementation() {
-        return (DOMNodeFactory)coreGetNodeFactory();
+        return ((DOMNodeFactory)coreGetNodeFactory()).getDOMImplementation();
     }
 
     public final DOMConfiguration DOMDocument.getDomConfig() {

Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj?rev=1798259&r1=1798258&r2=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj Fri Jun  9 18:51:16 2017
@@ -35,7 +35,7 @@ public aspect DOMNodeSupport {
     }
 
     public final boolean DOMNode.isSupported(String feature, String version) {
-        return ((DOMNodeFactory)coreGetNodeFactory()).hasFeature(feature, version);
+        return ((DOMNodeFactory)coreGetNodeFactory()).getDOMImplementation().hasFeature(feature, version);
     }
     
     public final String DOMNode.lookupNamespaceURI(String prefix) {

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMNodeFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMNodeFactory.java?rev=1798259&r1=1798258&r2=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMNodeFactory.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/DOOMNodeFactory.java Fri Jun  9 18:51:16 2017
@@ -18,17 +18,27 @@
  */
 package org.apache.axiom.om.impl.dom.factory;
 
+import org.apache.axiom.dom.DOMImplementationImpl;
 import org.apache.axiom.dom.DOMNodeFactory;
 import org.apache.axiom.om.impl.common.factory.AxiomNodeFactoryImpl;
+import org.w3c.dom.DOMImplementation;
 
 public final class DOOMNodeFactory extends AxiomNodeFactoryImpl implements DOMNodeFactory {
     public static final DOOMNodeFactory INSTANCE = new DOOMNodeFactory();
     
+    private final DOMImplementation domImplementation;
+
     private DOOMNodeFactory() {
         super(DOOMNodeFactory.class.getClassLoader(),
                 "org.apache.axiom.om.impl.dom",
                 "org.apache.axiom.soap.impl.dom",
                 "org.apache.axiom.soap.impl.dom.soap11",
                 "org.apache.axiom.soap.impl.dom.soap12");
+        domImplementation = new DOMImplementationImpl(this);
+    }
+
+    @Override
+    public DOMImplementation getDOMImplementation() {
+        return domImplementation;
     }
 }

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java?rev=1798259&r1=1798258&r2=1798259&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMMetaFactory.java Fri Jun  9 18:51:16 2017
@@ -66,6 +66,6 @@ public class OMDOMMetaFactory extends Ab
     }
 
     public DOMImplementation getDOMImplementation() {
-        return DOOMNodeFactory.INSTANCE;
+        return DOOMNodeFactory.INSTANCE.getDOMImplementation();
     }
 }