Move XML object factory logic to libcore
It makes sense to hide the details of the parser implementation
(and other similar objects) in libcore so it could be changed.
Test: build
Bug: 111055375
Merged-In: I475dec1bc66518b5ec2491abd49d11f5634c86b3
Change-Id: I475dec1bc66518b5ec2491abd49d11f5634c86b3
diff --git a/ksoap2-base/src/main/java/org/ksoap2/serialization/SoapSerializationEnvelope.java b/ksoap2-base/src/main/java/org/ksoap2/serialization/SoapSerializationEnvelope.java
index dae09d2..03cca04 100644
--- a/ksoap2-base/src/main/java/org/ksoap2/serialization/SoapSerializationEnvelope.java
+++ b/ksoap2-base/src/main/java/org/ksoap2/serialization/SoapSerializationEnvelope.java
@@ -26,13 +26,13 @@
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;
+import libcore.util.XmlObjectFactory;
+
import java.io.IOException;
import java.util.Hashtable;
import java.util.Vector;
import java.io.ByteArrayOutputStream;
-import org.kxml2.io.*;
-
/**
* @author Stefan Haustein
*
@@ -639,7 +639,9 @@
name.equals("MgmtTree") // format v6
) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
- XmlSerializer xw = new KXmlSerializer();
+ // Android-changed: Use XmlObjectFactory instead of a specific implementation.
+ // XmlSerializer xw = new KXmlSerializer();
+ XmlSerializer xw = XmlObjectFactory.newXmlSerializer();
xw.setOutput(bos, "UTF-8");
xw.startTag((dotNet) ? "" : namespace, name);
if (!implicitTypes) {
diff --git a/ksoap2-base/src/main/java/org/ksoap2/transport/Transport.java b/ksoap2-base/src/main/java/org/ksoap2/transport/Transport.java
index b2f6587..5ccd18f 100644
--- a/ksoap2-base/src/main/java/org/ksoap2/transport/Transport.java
+++ b/ksoap2-base/src/main/java/org/ksoap2/transport/Transport.java
@@ -27,8 +27,9 @@
import java.io.*;
import java.net.Proxy;
+import libcore.util.XmlObjectFactory;
+
import org.ksoap2.*;
-import org.kxml2.io.*;
import org.xmlpull.v1.*;
/**
@@ -110,7 +111,9 @@
*/
protected void parseResponse(SoapEnvelope envelope, InputStream is)
throws XmlPullParserException, IOException {
- XmlPullParser xp = new KXmlParser();
+ // Android-changed: Use XmlObjectFactory instead of a specific implementation.
+ // XmlPullParser xp = new KXmlParser();
+ XmlPullParser xp = XmlObjectFactory.newXmlPullParser();
xp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
xp.setInput(is, null);
envelope.parse(xp);
@@ -125,8 +128,12 @@
byte result[] = null;
bos.write(xmlVersionTag.getBytes());
System.out.println("bos.write");
- XmlSerializer xw = new KXmlSerializer();
- System.out.println("new KXmlSerializer");
+ // BEGIN Android-changed: Use XmlObjectFactory instead of a specific implementation.
+ // XmlSerializer xw = new KXmlSerializer();
+ // System.out.println("new KXmlSerializer");
+ XmlSerializer xw = XmlObjectFactory.newXmlSerializer();
+ System.out.println("newXmlSerializer()");
+ // END Android-changed: Use XmlObjectFactory instead of a specific implementation.
xw.setOutput(bos, encoding);
System.out.println("xw.setOutput");
envelope.write(xw);