mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-12-17 00:11:07 +01: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
|
|
@ -21,13 +21,12 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.xdata.Form;
|
||||
import org.jivesoftware.smackx.xdata.FormField;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* SimpleUserSearch is used to support the non-dataform type of XEP 55. This provides
|
||||
* the mechanism for allowing always type ReportedData to be returned by any search result,
|
||||
|
|
@ -109,16 +108,16 @@ class SimpleUserSearch extends IQ {
|
|||
fields.add(field);
|
||||
}
|
||||
|
||||
int eventType = parser.next();
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG && parser.getName().equals("item")) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("item")) {
|
||||
fields = new ArrayList<>();
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG && parser.getName().equals("item")) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getName().equals("item")) {
|
||||
ReportedData.Row row = new ReportedData.Row(fields);
|
||||
data.addRow(row);
|
||||
}
|
||||
else if (eventType == XmlPullParser.START_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.START_ELEMENT) {
|
||||
String name = parser.getName();
|
||||
String value = parser.nextText();
|
||||
|
||||
|
|
@ -141,7 +140,7 @@ class SimpleUserSearch extends IQ {
|
|||
data.addColumn(column);
|
||||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals("query")) {
|
||||
done = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@ import org.jivesoftware.smack.packet.XmlEnvironment;
|
|||
import org.jivesoftware.smack.parsing.SmackParsingException;
|
||||
import org.jivesoftware.smack.provider.IQProvider;
|
||||
import org.jivesoftware.smack.util.PacketParserUtils;
|
||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||
|
||||
import org.jivesoftware.smackx.xdata.Form;
|
||||
import org.jivesoftware.smackx.xdata.FormField;
|
||||
import org.jivesoftware.smackx.xdata.packet.DataForm;
|
||||
|
||||
import org.jxmpp.jid.DomainBareJid;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* Implements the protocol currently used to search information repositories on the Jabber network. To date, the jabber:iq:search protocol
|
||||
|
|
@ -136,21 +136,21 @@ public class UserSearch extends SimpleIQ {
|
|||
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
int eventType = parser.next();
|
||||
if (eventType == XmlPullParser.START_TAG && parser.getName().equals("instructions")) {
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("instructions")) {
|
||||
buildDataForm(simpleUserSearch, parser.nextText(), parser, xmlEnvironment);
|
||||
return simpleUserSearch;
|
||||
}
|
||||
else if (eventType == XmlPullParser.START_TAG && parser.getName().equals("item")) {
|
||||
else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("item")) {
|
||||
simpleUserSearch.parseItems(parser);
|
||||
return simpleUserSearch;
|
||||
}
|
||||
else if (eventType == XmlPullParser.START_TAG && parser.getNamespace().equals("jabber:x:data")) {
|
||||
else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getNamespace().equals("jabber:x:data")) {
|
||||
// Otherwise, it must be a packet extension.
|
||||
search = new UserSearch();
|
||||
PacketParserUtils.addExtensionElement(search, parser, xmlEnvironment);
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals("query")) {
|
||||
done = true;
|
||||
}
|
||||
|
|
@ -171,9 +171,9 @@ public class UserSearch extends SimpleIQ {
|
|||
dataForm.setTitle("User Search");
|
||||
dataForm.addInstruction(instructions);
|
||||
while (!done) {
|
||||
int eventType = parser.next();
|
||||
XmlPullParser.Event eventType = parser.next();
|
||||
|
||||
if (eventType == XmlPullParser.START_TAG && !parser.getNamespace().equals("jabber:x:data")) {
|
||||
if (eventType == XmlPullParser.Event.START_ELEMENT && !parser.getNamespace().equals("jabber:x:data")) {
|
||||
String name = parser.getName();
|
||||
FormField field = new FormField(name);
|
||||
|
||||
|
|
@ -194,12 +194,12 @@ public class UserSearch extends SimpleIQ {
|
|||
field.setType(FormField.Type.text_single);
|
||||
dataForm.addField(field);
|
||||
}
|
||||
else if (eventType == XmlPullParser.END_TAG) {
|
||||
else if (eventType == XmlPullParser.Event.END_ELEMENT) {
|
||||
if (parser.getName().equals("query")) {
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
else if (eventType == XmlPullParser.START_TAG && parser.getNamespace().equals("jabber:x:data")) {
|
||||
else if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getNamespace().equals("jabber:x:data")) {
|
||||
PacketParserUtils.addExtensionElement(search, parser, xmlEnvironment);
|
||||
done = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue