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 2012/12/22 23:47:05 UTC

svn commit: r1425363 - in /webservices/commons/trunk/modules/axiom/modules/axiom-compat: pom.xml src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java

Author: veithen
Date: Sat Dec 22 22:47:05 2012
New Revision: 1425363

URL: http://svn.apache.org/viewvc?rev=1425363&view=rev
Log:
Decouple axiom-compat from axiom-dom.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-compat/pom.xml
    webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-compat/pom.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-compat/pom.xml?rev=1425363&r1=1425362&r2=1425363&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-compat/pom.xml (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-compat/pom.xml Sat Dec 22 22:47:05 2012
@@ -53,7 +53,7 @@
             <groupId>${project.groupId}</groupId>
             <artifactId>axiom-dom</artifactId>
             <version>${project.version}</version>
-        	<optional>true</optional>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java?rev=1425363&r1=1425362&r2=1425363&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderFactoryImpl.java Sat Dec 22 22:47:05 2012
@@ -24,6 +24,9 @@ import javax.xml.parsers.DocumentBuilder
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.validation.Schema;
 
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
+
 /**
  * @deprecated
  *    This class has static methods that allow to switch between DOOM and the default
@@ -47,6 +50,9 @@ public class DocumentBuilderFactoryImpl 
     private static String originalDocumentBuilderFactoryClassName = null;
     private static ThreadLocal documentBuilderFactoryTracker = new ThreadLocal();
 
+    private static final DOMMetaFactory domMetaFactory =
+            (DOMMetaFactory)OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
+    
     protected Schema schema;
 
     public static boolean isDOOMRequired() {
@@ -91,7 +97,7 @@ public class DocumentBuilderFactoryImpl 
          * Determine which DocumentBuilder implementation should be returned
          */
         return isDOOMRequired()
-                ? new DocumentBuilderImpl(this)
+                ? new DocumentBuilderImpl(this, domMetaFactory)
                 : originalDocumentBuilderFactory.newDocumentBuilder();
     }
 

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java?rev=1425363&r1=1425362&r2=1425363&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-compat/src/main/java/org/apache/axiom/om/impl/dom/jaxp/DocumentBuilderImpl.java Sat Dec 22 22:47:05 2012
@@ -19,11 +19,10 @@
 
 package org.apache.axiom.om.impl.dom.jaxp;
 
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.dom.DOMMetaFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.dom.DocumentImpl;
-import org.apache.axiom.om.impl.dom.ElementImpl;
-import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
 import org.apache.axiom.om.util.StAXUtils;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
@@ -49,9 +48,12 @@ public class DocumentBuilderImpl extends
     /** The DocumentBuilderFactory used to create this document builder */
     private DocumentBuilderFactoryImpl factory;
 
-    protected DocumentBuilderImpl(DocumentBuilderFactoryImpl fac) {
+    private final DOMMetaFactory domMetaFactory;
+    
+    protected DocumentBuilderImpl(DocumentBuilderFactoryImpl fac, DOMMetaFactory domMetaFactory) {
         super();
         this.factory = fac;
+        this.domMetaFactory = domMetaFactory;
     }
 
     /**
@@ -75,7 +77,7 @@ public class DocumentBuilderImpl extends
     }
 
     public DOMImplementation getDOMImplementation() {
-        return OMDOMMetaFactory.INSTANCE.getDOMImplementation();
+        return domMetaFactory.getDOMImplementation();
     }
 
     /**
@@ -84,10 +86,7 @@ public class DocumentBuilderImpl extends
      * @see javax.xml.parsers.DocumentBuilder#newDocument()
      */
     public Document newDocument() {
-        OMDOMFactory factory = new OMDOMFactory();
-        DocumentImpl documentImpl = new DocumentImpl(factory);
-        documentImpl.setComplete(true);
-        return documentImpl;
+        return (Document)domMetaFactory.getOMFactory().createOMDocument();
     }
 
     public void setEntityResolver(EntityResolver er) {
@@ -101,14 +100,14 @@ public class DocumentBuilderImpl extends
     public Document parse(InputSource inputSource) throws SAXException,
             IOException {
         try {
-            OMDOMFactory factory = new OMDOMFactory();
+            OMFactory factory = domMetaFactory.getOMFactory();
             // Not really sure whether this will work :-?
             XMLStreamReader reader = StAXUtils
                     .createXMLStreamReader(inputSource.getCharacterStream());
             StAXOMBuilder builder = new StAXOMBuilder(factory, reader);
-            DocumentImpl doc = (DocumentImpl) builder.getDocument();
-            ((ElementImpl) doc.getDocumentElement()).build();
-            return (DocumentImpl) builder.getDocument();
+            OMDocument doc = builder.getDocument();
+            doc.build();
+            return (Document)doc;
         } catch (XMLStreamException e) {
             throw new SAXException(e);
         }
@@ -117,11 +116,11 @@ public class DocumentBuilderImpl extends
     /** @see javax.xml.parsers.DocumentBuilder#parse(java.io.InputStream) */
     public Document parse(InputStream is) throws SAXException, IOException {
         try {
-            OMDOMFactory factory = new OMDOMFactory();
+            OMFactory factory = domMetaFactory.getOMFactory();
             XMLStreamReader reader = StAXUtils
                     .createXMLStreamReader(is);
             StAXOMBuilder builder = new StAXOMBuilder(factory, reader);
-            return (DocumentImpl) builder.getDocument();
+            return (Document) builder.getDocument();
         } catch (XMLStreamException e) {
             throw new SAXException(e);
         }
@@ -130,11 +129,11 @@ public class DocumentBuilderImpl extends
     /** @see javax.xml.parsers.DocumentBuilder#parse(java.io.File) */
     public Document parse(File file) throws SAXException, IOException {
         try {
-            OMDOMFactory factory = new OMDOMFactory();
+            OMFactory factory = domMetaFactory.getOMFactory();
             XMLStreamReader reader = StAXUtils
                     .createXMLStreamReader(new FileInputStream(file));
             StAXOMBuilder builder = new StAXOMBuilder(factory, reader);
-            return (DocumentImpl) builder.getDocument();
+            return (Document) builder.getDocument();
         } catch (XMLStreamException e) {
             throw new SAXException(e);
         }