mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-09 00:59:39 +02:00
Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3
Introducing Smack's own XmlPullParser interface which tries to stay as compatible as possible to XPP3. The interface is used to either wrap StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's XmlPullParser if Smack is used on on Android. Fixes SMACK-591. Also introduce JUnit 5 and non-strict javadoc projects.
This commit is contained in:
parent
b3646abecd
commit
4133eb175c
414 changed files with 3855 additions and 2041 deletions
|
@ -34,13 +34,12 @@ import org.jivesoftware.smack.packet.IQ;
|
|||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.IQProvider;
|
||||
import org.jivesoftware.smack.provider.ProviderManager;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.disco.packet.DiscoverInfo;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* RTPBridge IQ Stanza used to request and retrieve a RTPBridge Candidates that can be used for a Jingle Media Transmission between two parties that are behind NAT.
|
||||
* This Jingle Bridge has all the needed information to establish a full UDP Channel (Send and Receive) between two parties.
|
||||
|
@ -335,7 +334,7 @@ public class RTPBridge extends IQ {
|
|||
|
||||
boolean done = false;
|
||||
|
||||
int eventType;
|
||||
XmlPullParser.Event eventType;
|
||||
String elementName;
|
||||
|
||||
if (!parser.getNamespace().equals(RTPBridge.NAMESPACE))
|
||||
|
@ -354,7 +353,7 @@ public class RTPBridge extends IQ {
|
|||
eventType = parser.next();
|
||||
elementName = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
if (elementName.equals("candidate")) {
|
||||
for (int i = 0; i < parser.getAttributeCount(); i++) {
|
||||
if (parser.getAttributeName(i).equals("ip"))
|
||||
|
@ -376,7 +375,7 @@ public class RTPBridge extends IQ {
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals(RTPBridge.ELEMENT_NAME)) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -30,14 +30,13 @@ import org.jivesoftware.smack.packet.SimpleIQ;
|
|||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.IQProvider;
|
||||
import org.jivesoftware.smack.provider.ProviderManager;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.disco.ServiceDiscoveryManager;
|
||||
import org.jivesoftware.smackx.disco.packet.DiscoverInfo;
|
||||
import org.jivesoftware.smackx.disco.packet.DiscoverItems;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* STUN IQ Stanza used to request and retrieve a STUN server and port to make p2p connections easier. STUN is usually used by Jingle Media Transmission between two parties that are behind NAT.
|
||||
*
|
||||
|
@ -123,7 +122,7 @@ public class STUN extends SimpleIQ {
|
|||
|
||||
boolean done = false;
|
||||
|
||||
int eventType;
|
||||
XmlPullParser.Event eventType;
|
||||
String elementName;
|
||||
|
||||
if (!parser.getNamespace().equals(NAMESPACE))
|
||||
|
@ -136,7 +135,7 @@ public class STUN extends SimpleIQ {
|
|||
eventType = parser.next();
|
||||
elementName = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
if (elementName.equals("server")) {
|
||||
String host = null;
|
||||
String port = null;
|
||||
|
@ -159,7 +158,7 @@ public class STUN extends SimpleIQ {
|
|||
iq.setPublicIp(host);
|
||||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals(ELEMENT_NAME)) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -28,15 +28,15 @@ import java.util.logging.Logger;
|
|||
|
||||
import org.jivesoftware.smack.SmackException.NotConnectedException;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.util.PacketParserUtils;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.JingleSession;
|
||||
|
||||
import de.javawi.jstun.test.BindingLifetimeTest;
|
||||
import de.javawi.jstun.test.DiscoveryInfo;
|
||||
import de.javawi.jstun.test.DiscoveryTest;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
import org.xmlpull.v1.XmlPullParserFactory;
|
||||
|
||||
/**
|
||||
* Transport resolver using the JSTUN library, to discover public IP and use it as a candidate.
|
||||
|
@ -141,13 +141,11 @@ public class STUNResolver extends TransportResolver {
|
|||
int serverPort;
|
||||
|
||||
try {
|
||||
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
|
||||
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
|
||||
parser.setInput(stunConfigStream, "UTF-8");
|
||||
XmlPullParser parser = PacketParserUtils.getParserFor(stunConfigStream);
|
||||
|
||||
int eventType = parser.getEventType();
|
||||
XmlPullParser.Event eventType = parser.getEventType();
|
||||
do {
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
|
||||
// Parse a STUN server definition
|
||||
if (parser.getName().equals("stunServer")) {
|
||||
|
@ -181,7 +179,7 @@ public class STUNResolver extends TransportResolver {
|
|||
eventType = parser.next();
|
||||
|
||||
}
|
||||
while (eventType != XmlPullParser.END_DOCUMENT);
|
||||
while (eventType != XmlPullParser.Event.END_DOCUMENT);
|
||||
|
||||
}
|
||||
catch (XmlPullParserException e) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import java.util.logging.Level;
|
|||
import java.util.logging.Logger;
|
||||
|
||||
import org.jivesoftware.smack.XMPPConnection;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.JingleSession;
|
||||
|
||||
import org.jxmpp.jid.Jid;
|
||||
|
|
|
@ -22,11 +22,10 @@ import java.util.Locale;
|
|||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.media.ContentInfo;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
public class JingleError implements ExtensionElement {
|
||||
|
||||
public static String NAMESPACE = "urn:xmpp:tmp:jingle:errors";
|
||||
|
|
|
@ -20,14 +20,13 @@ import java.io.IOException;
|
|||
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.media.PayloadType;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleContentDescription;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleContentDescription.JinglePayloadType;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* Parser for a Jingle description.
|
||||
*
|
||||
|
@ -77,17 +76,17 @@ public abstract class JingleContentDescriptionProvider extends ExtensionElementP
|
|||
JingleContentDescription desc = getInstance();
|
||||
|
||||
while (!done) {
|
||||
int eventType = parser.next();
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
if (name.equals(JingleContentDescription.JinglePayloadType.NODENAME)) {
|
||||
desc.addJinglePayloadType(parsePayload(parser));
|
||||
} else {
|
||||
// TODO: Should be SmackParseException.
|
||||
throw new IOException("Unknow element \"" + name + "\" in content.");
|
||||
}
|
||||
} else if (eventType == XmlPullParser.END_TAG) {
|
||||
} else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleContentDescription.NODENAME)) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -19,12 +19,11 @@ package org.jivesoftware.smackx.jingleold.provider;
|
|||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.media.ContentInfo;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleContentInfo;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
/**
|
||||
* Jingle Audio jmf-info provider.
|
||||
*
|
||||
|
|
|
@ -18,11 +18,10 @@ package org.jivesoftware.smackx.jingleold.provider;
|
|||
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleContent;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
/**
|
||||
* Jingle <content> provider.
|
||||
*
|
||||
|
|
|
@ -20,13 +20,12 @@ import java.io.IOException;
|
|||
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.media.PayloadType;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleDescription;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* Parser for a Jingle description.
|
||||
*
|
||||
|
@ -76,17 +75,17 @@ public abstract class JingleDescriptionProvider extends ExtensionElementProvider
|
|||
JingleDescription desc = getInstance();
|
||||
|
||||
while (!done) {
|
||||
int eventType = parser.next();
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
if (name.equals(PayloadType.NODENAME)) {
|
||||
desc.addPayloadType(parsePayload(parser));
|
||||
} else {
|
||||
// TODO: Should be SmackParseException.
|
||||
throw new IOException("Unknow element \"" + name + "\" in content.");
|
||||
}
|
||||
} else if (eventType == XmlPullParser.END_TAG) {
|
||||
} else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleDescription.NODENAME)) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException;
|
|||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.provider.IQProvider;
|
||||
import org.jivesoftware.smack.util.ParserUtils;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.JingleActionEnum;
|
||||
import org.jivesoftware.smackx.jingleold.packet.Jingle;
|
||||
|
@ -33,8 +35,6 @@ import org.jivesoftware.smackx.jingleold.packet.JingleDescription;
|
|||
import org.jivesoftware.smackx.jingleold.packet.JingleTransport;
|
||||
|
||||
import org.jxmpp.jid.Jid;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* The JingleProvider parses Jingle packets.
|
||||
|
@ -66,7 +66,7 @@ public class JingleProvider extends IQProvider<Jingle> {
|
|||
JingleTransportProvider jtpIce = new JingleTransportProvider.Ice();
|
||||
ExtensionElementProvider<?> jmipAudio = new JingleContentInfoProvider.Audio();
|
||||
|
||||
int eventType;
|
||||
XmlPullParser.Event eventType;
|
||||
String elementName;
|
||||
String namespace;
|
||||
|
||||
|
@ -87,7 +87,7 @@ public class JingleProvider extends IQProvider<Jingle> {
|
|||
elementName = parser.getName();
|
||||
namespace = parser.getNamespace();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
|
||||
// Parse some well know subelements, depending on the namespaces
|
||||
// and element names...
|
||||
|
@ -119,7 +119,7 @@ public class JingleProvider extends IQProvider<Jingle> {
|
|||
+ elementName + "\" in Jingle packet.");
|
||||
}
|
||||
|
||||
} else if (eventType == XmlPullParser.END_TAG) {
|
||||
} else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals(Jingle.getElementName())) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -20,15 +20,14 @@ import java.io.IOException;
|
|||
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.jingleold.nat.ICECandidate;
|
||||
import org.jivesoftware.smackx.jingleold.nat.TransportCandidate;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleTransport;
|
||||
import org.jivesoftware.smackx.jingleold.packet.JingleTransport.JingleTransportCandidate;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* Provider for a Jingle transport element.
|
||||
*
|
||||
|
@ -59,10 +58,10 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider<J
|
|||
JingleTransport trans = getInstance();
|
||||
|
||||
while (!done) {
|
||||
int eventType = parser.next();
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
String name = parser.getName();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
if (name.equals(JingleTransportCandidate.NODENAME)) {
|
||||
JingleTransportCandidate jtc = parseCandidate(parser);
|
||||
if (jtc != null) trans.addCandidate(jtc);
|
||||
|
@ -72,7 +71,7 @@ public abstract class JingleTransportProvider extends ExtensionElementProvider<J
|
|||
throw new IOException("Unknown tag \"" + name + "\" in transport element.");
|
||||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (name.equals(JingleTransport.NODENAME)) {
|
||||
done = true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue