diff --git a/build.gradle b/build.gradle index 5c997dcbb..4b01e13e4 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ apply from: 'version.gradle' allprojects { apply plugin: 'java' + apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'jacoco' @@ -80,6 +81,8 @@ allprojects { ':smack-omemo', ':smack-omemo-signal', ':smack-openpgp', + ':smack-xmlparser', + ':smack-xmlparser-xpp3', ].collect{ project(it) } androidBootClasspathProjects = [ ':smack-android', @@ -97,13 +100,37 @@ allprojects { ':smack-omemo-signal', ':smack-omemo-signal-integration-test', ].collect{ project(it) } + // When this list is empty, then move the according javadoc + // tool Werror option into the global configure section. + nonStrictJavadocProjects = [ + ':smack-bosh', + ':smack-core', + ':smack-experimental', + ':smack-extensions', + ':smack-im', + ':smack-integration-test', + ':smack-jingle-old', + ':smack-legacy', + ':smack-omemo', + ':smack-tcp', + ].collect{ project(it) } // Lazily evaluate the Android bootClasspath and offline // Javadoc using a closure, so that targets which do not // require it are still able to succeed without an Android // SDK. androidBootClasspath = { getAndroidRuntimeJar() } androidJavadocOffline = { getAndroidJavadocOffline() } - junitVersion = '5.2.0' + junit4Projects = [ + ':smack-core', + ':smack-extensions', + ':smack-im', + ':smack-integration-test', + ':smack-omemo', + ':smack-omemo-signal', + ':smack-openpgp', + ].collect { project(it) } + junitVersion = '5.4.2' + powerMockVersion = '1.7.3' } group = 'org.igniterealtime.smack' sourceCompatibility = JavaVersion.VERSION_1_8 @@ -114,6 +141,12 @@ allprojects { } test { + useJUnitPlatform() + + // Enable once the tests are fixed that sometimes break if + // they are executed in parallel (.e.g Socks5) + // maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 + // Enable full stacktraces of failed tests. Especially handy // for environments like Travis. testLogging { @@ -232,6 +265,10 @@ allprojects { } dependencies { + testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + errorprone 'com.google.errorprone:error_prone_core:2.3.2' errorproneJavac('com.google.errorprone:javac:9+181-r4173-1') } @@ -241,6 +278,15 @@ allprojects { test { dependsOn javadoc } } +configure (junit4Projects) { + dependencies { + testImplementation "org.junit.vintage:junit-vintage-engine:$junitVersion" + testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" + testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" + testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" + } +} + gradle.taskGraph.whenReady { taskGraph -> if (signingRequired && taskGraph.allTasks.any { it instanceof Sign }) { @@ -532,6 +578,15 @@ subprojects*.jar { } } +configure(subprojects - nonStrictJavadocProjects) { + tasks.withType(Javadoc) { + // Abort on javadoc warnings. + // See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363) + // for information about the -Xwerror option. + options.addStringOption('Xwerror', '-quiet') + } +} + configure(subprojects - gplLicensedProjects) { checkstyle { configProperties.checkstyleLicenseHeader = "header" diff --git a/documentation/developer/provider.md b/documentation/developer/provider.md index cd5255af5..465caeb32 100644 --- a/documentation/developer/provider.md +++ b/documentation/developer/provider.md @@ -27,11 +27,11 @@ public MyExtension parse(XmlPullParser parser, int initialDepth) { outerloop: while(true) { // Make sure to have already parse all attributes of the outermost element, // i.e. 'attrFoo' of 'myExtension' in this example. Then advance the parser - int event = parser.next(); + XmlPullParser.Event event = parser.next(); // Use switch/case of int instead of a if/else-if cascade switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: // Determine the name of the element which start tag we are seeing String name = parser.getName(); // We can use switch/case of Strings since Java7, make use of its advantages @@ -52,12 +52,15 @@ public MyExtension parse(XmlPullParser parser, int initialDepth) { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: // The abort condition with the break labeled loop statement if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/documentation/providers.md b/documentation/providers.md index 00457d5d9..f5e57e705 100644 --- a/documentation/providers.md +++ b/documentation/providers.md @@ -23,7 +23,7 @@ Whenever a packet extension is found in a packet, parsing will be passed to the correct provider. Each provider must extend the ExtensionElementProvider abstract class. Each extension provider is responsible for parsing the raw XML stream, via the -[XML Pull Parser](http://www.xmlpull.org/), to contruct an object. +Smack's `XmlPullParser` interface, to construct an object. You can also create an introspection provider (`provider.IntrospectionProvider.PacketExtensionIntrospectionProvider`). Here, @@ -161,9 +161,9 @@ public class MyIQProvider extends IQProvider { // Start parsing loop outerloop: while(true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch(eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "user": @@ -175,12 +175,15 @@ public class MyIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: // Abort condition: if the are on a end tag (closing element) of the same depth if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -225,9 +228,9 @@ _Disco Items IQProvider_ String node = ""; discoverItems.setNode(parser.getAttributeValue("", "node")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "item": @@ -239,7 +242,7 @@ _Disco Items IQProvider_ break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: String elementName = parser.getName(); switch (elementName) { case "item": @@ -295,17 +298,17 @@ _Subscription PacketExtensionProvider Implementation_ String state = parser.getAttributeValue(null, "subscription"); boolean isRequired = false; - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("subscribe-options")) { + if ((tag == XmlPullParser.START_ELEMENT) && parser.getName().equals("subscribe-options")) { tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("required")) + if ((tag == XmlPullParser.START_ELEMENT) && parser.getName().equals("required")) isRequired = true; - while (parser.next() != XmlPullParser.END_TAG && parser.getName() != "subscribe-options"); + while (parser.next() != XmlPullParser.END_ELEMENT && parser.getName() != "subscribe-options"); } - while (parser.getEventType() != XmlPullParser.END_TAG) parser.next(); + while (parser.getEventType() != XmlPullParser.END_ELEMENT) parser.next(); return new Subscription(jid, nodeId, subId, state == null ? null : Subscription.State.valueOf(state), isRequired); } } diff --git a/resources/releasedocs/README.html b/resources/releasedocs/README.html index 195858a8f..d25eaf624 100644 --- a/resources/releasedocs/README.html +++ b/resources/releasedocs/README.html @@ -169,14 +169,10 @@ recommended when using Smack.

-If you dont' use a -dependency resolution system, like gradle or maven, then you will need -to download at least -the Xml -Pull Parser 3rd Edition (XPP3) library or any other library that -implements the XmlPullParser interface -(like kXML) and the set of -jXMPP libraries. + Smack tries to depend on as few as possible libraries. The only + requirement is jXMPP. For DNS + resolution we recommend to + use MiniDNS.

diff --git a/settings.gradle b/settings.gradle index 6188d60b6..d3b53d80e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,4 +28,7 @@ include 'smack-core', 'smack-omemo-signal', 'smack-omemo-signal-integration-test', 'smack-repl', - 'smack-openpgp' + 'smack-openpgp', + 'smack-xmlparser', + 'smack-xmlparser-stax', + 'smack-xmlparser-xpp3' diff --git a/smack-android/build.gradle b/smack-android/build.gradle index 63fa35d2f..46827c09f 100644 --- a/smack-android/build.gradle +++ b/smack-android/build.gradle @@ -7,6 +7,7 @@ smack-extensions and smack-experimental.""" // Note that the test dependencies (junit, …) are inferred from the // sourceSet.test of the core subproject dependencies { + api project(':smack-xmlparser-xpp3') // Depend on minidns-android21 as optional dependency, even if may // not need it. Can't hurt to have it in the programm path with // the correct MiniDNS version as it won't hurt even if the diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java index 7e1d97122..592e0633c 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java @@ -20,7 +20,6 @@ package org.jivesoftware.smack.bosh; import java.io.IOException; import java.io.PipedReader; import java.io.PipedWriter; -import java.io.StringReader; import java.io.Writer; import java.util.Map; import java.util.logging.Level; @@ -44,6 +43,7 @@ import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.igniterealtime.jbosh.AbstractBody; import org.igniterealtime.jbosh.BOSHClient; @@ -56,11 +56,8 @@ import org.igniterealtime.jbosh.BOSHException; import org.igniterealtime.jbosh.BOSHMessageEvent; import org.igniterealtime.jbosh.BodyQName; import org.igniterealtime.jbosh.ComposableBody; - import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; /** * Creates a connection to an XMPP server via HTTP binding. @@ -479,14 +476,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { if (streamId == null) { streamId = body.getAttribute(BodyQName.create(XMPPBOSHConnection.BOSH_URI, "authid")); } - final XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(new StringReader(body.toXML())); - int eventType = parser.getEventType(); + final XmlPullParser parser = PacketParserUtils.getParserFor(body.toXML()); + + XmlPullParser.Event eventType = parser.getEventType(); do { eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case Message.ELEMENT: @@ -528,9 +524,12 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { } } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); } catch (Exception e) { if (isConnected()) { diff --git a/smack-core/build.gradle b/smack-core/build.gradle index 69ee5d468..c2ce38504 100644 --- a/smack-core/build.gradle +++ b/smack-core/build.gradle @@ -2,23 +2,19 @@ description = """\ Smack core components.""" ext { - xmlUnitVersion = "2.6.0" - powerMockVersion = "1.7.3" + xmlUnitVersion = '2.6.2' } dependencies { - compile 'xpp3:xpp3:1.1.4c' + compile project(':smack-xmlparser') compile "org.jxmpp:jxmpp-core:$jxmppVersion" compile "org.jxmpp:jxmpp-jid:$jxmppVersion" compile "org.minidns:minidns-core:$miniDnsVersion" + testCompile project(':smack-xmlparser-stax') + testCompile project(':smack-xmlparser-xpp3') testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" - testCompile "org.junit.jupiter:junit-jupiter-api:$junitVersion" - testCompile "org.junit.vintage:junit-vintage-engine:$junitVersion" testCompile "org.xmlunit:xmlunit-core:$xmlUnitVersion" testCompile "org.xmlunit:xmlunit-legacy:$xmlUnitVersion" - testCompile "org.powermock:powermock-module-junit4:$powerMockVersion" - testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion" - testCompile "org.powermock:powermock-api-mockito2:$powerMockVersion" testCompile 'com.jamesmurty.utils:java-xmlbuilder:1.2' } diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java index e9261f516..ef7d5ee85 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/packet/PrivacyProviderTest.java @@ -16,9 +16,9 @@ package org.jivesoftware.smack.packet; import org.jivesoftware.smack.provider.PrivacyProvider; import org.jivesoftware.smack.test.SmackTestCase; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import java.io.StringReader; diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java index e44c6e15a..9bceba3f7 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/test/SmackTestCase.java @@ -32,8 +32,8 @@ import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.TCPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.util.ConnectionUtils; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; /** * Base class for all the test cases which provides a pre-configured execution context. This @@ -414,9 +414,9 @@ public abstract class SmackTestCase extends TestCase { XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); parser.setInput(systemStream, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == START_ELEMENT) { if (parser.getName().equals("host")) { host = parser.nextText(); } @@ -459,7 +459,7 @@ public abstract class SmackTestCase extends TestCase { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != END_DOCUMENT); parsedOK = true; } catch (Exception e) { diff --git a/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java b/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java index a375e0d81..8d2a0df4f 100644 --- a/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java +++ b/smack-core/src/integration-test/java/org/jivesoftware/smack/util/XMPPErrorTest.java @@ -20,9 +20,9 @@ import java.io.StringReader; import org.jivesoftware.smack.packet.XMPPError; import org.jivesoftware.smack.test.SmackTestCase; -import org.xmlpull.v1.XmlPullParserFactory; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class XMPPErrorTest extends SmackTestCase { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index e82ad15aa..632855ac2 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -121,6 +121,8 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.dns.HostAddress; import org.jivesoftware.smack.util.dns.SmackDaneProvider; import org.jivesoftware.smack.util.dns.SmackDaneVerifier; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.EntityFullJid; @@ -130,8 +132,6 @@ import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.util.XmppStringUtils; import org.minidns.dnsname.DnsName; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** @@ -1614,9 +1614,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { streamFeatures.clear(); final int initialDepth = parser.getDepth(); while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getDepth() == initialDepth + 1) { + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getDepth() == initialDepth + 1) { FullyQualifiedElement streamFeature = null; String name = parser.getName(); String namespace = parser.getNamespace(); @@ -1647,7 +1647,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { addStreamFeature(streamFeature); } } - else if (eventType == XmlPullParser.END_TAG && parser.getDepth() == initialDepth) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) { break; } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java index 10695df47..6f06e4d33 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java @@ -29,6 +29,7 @@ import javax.net.ssl.HostnameVerifier; import org.jivesoftware.smack.compression.XMPPInputOutputStream; import org.jivesoftware.smack.debugger.ReflectionDebuggerFactory; import org.jivesoftware.smack.debugger.SmackDebuggerFactory; +import org.jivesoftware.smack.parsing.ExceptionThrowingCallback; import org.jivesoftware.smack.parsing.ExceptionThrowingCallbackWithHint; import org.jivesoftware.smack.parsing.ParsingExceptionCallback; import org.jivesoftware.smack.util.Objects; @@ -380,4 +381,5 @@ public final class SmackConfiguration { public static int getDefaultConcurrencyLevelLimit() { return defaultConcurrencyLevelLimit; } + } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java index 701004696..56ce677ce 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackInitialization.java @@ -44,10 +44,10 @@ import org.jivesoftware.smack.sasl.core.SCRAMSHA1Mechanism; import org.jivesoftware.smack.sasl.core.ScramSha1PlusMechanism; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; +import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; +import org.jivesoftware.smack.xml.XmlPullParser; public final class SmackInitialization { @@ -141,12 +141,10 @@ public final class SmackInitialization { public static void processConfigFile(InputStream cfgFileStream, Collection exceptions, ClassLoader classLoader) throws Exception { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(cfgFileStream, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser parser = PacketParserUtils.getParserFor(cfgFileStream); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("startupClasses")) { parseClassesToLoad(parser, false, exceptions, classLoader); } @@ -156,7 +154,7 @@ public final class SmackInitialization { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); CloseableUtil.maybeClose(cfgFileStream, LOGGER); } @@ -164,12 +162,10 @@ public final class SmackInitialization { Collection exceptions, ClassLoader classLoader) throws Exception { final String startName = parser.getName(); - int eventType; - String name; + XmlPullParser.Event eventType; outerloop: do { eventType = parser.next(); - name = parser.getName(); - if (eventType == XmlPullParser.START_TAG && "className".equals(name)) { + if (eventType == XmlPullParser.Event.START_ELEMENT && "className".equals(parser.getName())) { String classToLoad = parser.nextText(); if (SmackConfiguration.isDisabledSmackClass(classToLoad)) { continue outerloop; @@ -188,7 +184,7 @@ public final class SmackInitialization { } } } - while (!(eventType == XmlPullParser.END_TAG && startName.equals(name))); + while (!(eventType == XmlPullParser.Event.END_ELEMENT && startName.equals(parser.getName()))); } private static void loadSmackClass(String className, boolean optional, ClassLoader classLoader) throws Exception { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java index 8b02ef95b..fbed9abd3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/CompressedProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.compress.packet.Compressed; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.NonzaProvider; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class CompressedProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java index eaa9a980d..cf90f594b 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/compress/provider/FailureProvider.java @@ -27,8 +27,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.NonzaProvider; import org.jivesoftware.smack.util.PacketParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public final class FailureProvider extends NonzaProvider { @@ -46,9 +46,9 @@ public final class FailureProvider extends NonzaProvider { XmlEnvironment failureXmlEnvironment = XmlEnvironment.from(parser, xmlEnvironment); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -72,11 +72,12 @@ public final class FailureProvider extends NonzaProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: // fall out } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java index 99c8ac6b6..3330202d3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/fsm/AbstractXmppStateMachineConnection.java @@ -57,10 +57,10 @@ import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Challenge; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPConnection { @@ -310,10 +310,10 @@ public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPCon // Skip the enclosing stream open what is guaranteed to be there. parser.next(); - int event = parser.getEventType(); + XmlPullParser.Event event = parser.getEventType(); outerloop: while (true) { switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); // Note that we don't handle "stream" here as it's done in the splitter. switch (name) { @@ -353,8 +353,9 @@ public abstract class AbstractXmppStateMachineConnection extends AbstractXMPPCon break; } break; - case XmlPullParser.END_DOCUMENT: + case END_DOCUMENT: break outerloop; + default: // fall out } event = parser.next(); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java index da69cb240..0e713a04c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/XmlEnvironment.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.packet; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class XmlEnvironment { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java index 4b9f77acf..cceaf4216 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/parsing/StandardExtensionElementProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2015 Florian Schmaus. + * Copyright 2015-2019 Florian Schmaus. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,8 +26,8 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * The parser for {@link StandardExtensionElement}s. @@ -47,7 +47,7 @@ public class StandardExtensionElementProvider extends ExtensionElementProvider attributes = new LinkedHashMap<>(namespaceCount + attributeCount); for (int i = 0; i < namespaceCount; i++) { @@ -77,19 +77,22 @@ public class StandardExtensionElementProvider extends ExtensionElementProvider { @@ -34,9 +34,9 @@ public class BindIQProvider extends IQProvider { String name; Bind bind = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "resource": @@ -49,11 +49,14 @@ public class BindIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return bind; diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java index ad6cefdaf..df85d067c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/BodyElementProvider.java @@ -24,8 +24,8 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class BodyElementProvider extends ExtensionElementProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java index 6226d5d3d..f572d876d 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java @@ -27,8 +27,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.PacketParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * @@ -97,14 +97,14 @@ public abstract class EmbeddedExtensionProvider ext } List extensions = new ArrayList<>(); - int event; + XmlPullParser.Event event; do { event = parser.next(); - if (event == XmlPullParser.START_TAG) + if (event == XmlPullParser.Event.START_ELEMENT) PacketParserUtils.addExtensionElement(extensions, parser, xmlEnvironment); } - while (!(event == XmlPullParser.END_TAG && parser.getDepth() == initialDepth)); + while (!(event == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth)); return createReturnExtension(name, namespace, attMap, extensions); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java index 3c952bbf6..a4c58f406 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java @@ -24,8 +24,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class IntrospectionProvider{ @@ -81,9 +81,9 @@ public class IntrospectionProvider{ ParserUtils.assertAtStartTag(parser); Object object = objectClass.getConstructor().newInstance(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String stringValue = parser.nextText(); Class propertyType = object.getClass().getMethod( @@ -97,11 +97,14 @@ public class IntrospectionProvider{ propertyType).invoke(object, value); break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java index 46205fd6a..ef1a225d9 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java @@ -26,8 +26,8 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.ParserUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Smack provider are the parsers used to deserialize raw XMPP into the according Java {@link Element}s. diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java index c8b879306..e39f81d26 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderFileLoader.java @@ -26,9 +26,8 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.IQ; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserFactory; +import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; /** * Loads the {@link IQProvider} and {@link ExtensionElementProvider} information from a standard provider file in preparation @@ -54,12 +53,10 @@ public class ProviderFileLoader implements ProviderLoader { public ProviderFileLoader(InputStream providerStream, ClassLoader classLoader) { // Load processing providers. try (InputStream is = providerStream) { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(is, "UTF-8"); - int eventType = parser.getEventType(); + XmlPullParser parser = PacketParserUtils.getParserFor(is); + XmlPullParser.Event eventType = parser.getEventType(); do { - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { final String typeName = parser.getName(); try { @@ -134,7 +131,7 @@ public class ProviderFileLoader implements ProviderLoader { } eventType = parser.next(); } - while (eventType != XmlPullParser.END_DOCUMENT); + while (eventType != XmlPullParser.Event.END_DOCUMENT); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Unknown error occurred while parsing provider file", e); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java index 6211e6cc0..2509d89c8 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsFailureProvider.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.provider; import org.jivesoftware.smack.packet.TlsProceed; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class TlsFailureProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java index 3be9f904f..f8e8b1158 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/TlsProceedProvider.java @@ -19,7 +19,7 @@ package org.jivesoftware.smack.provider; import org.jivesoftware.smack.packet.TlsFailure; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public final class TlsProceedProvider extends NonzaProvider { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java index dd065fe92..13ce501fb 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java @@ -17,18 +17,19 @@ package org.jivesoftware.smack.util; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; -import java.util.logging.Level; import java.util.logging.Logger; -import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.compress.packet.Compress; import org.jivesoftware.smack.packet.EmptyResultIQ; import org.jivesoftware.smack.packet.ErrorIQ; @@ -49,11 +50,11 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; /** * Utility class that helps to parse packets. Any parsing packets method that must be shared @@ -64,51 +65,27 @@ import org.xmlpull.v1.XmlPullParserFactory; public class PacketParserUtils { private static final Logger LOGGER = Logger.getLogger(PacketParserUtils.class.getName()); - public static final String FEATURE_XML_ROUNDTRIP = "http://xmlpull.org/v1/doc/features.html#xml-roundtrip"; - - private static final XmlPullParserFactory XML_PULL_PARSER_FACTORY; - - /** - * True if the XmlPullParser supports the XML_ROUNDTRIP feature. - */ - public static final boolean XML_PULL_PARSER_SUPPORTS_ROUNDTRIP; - - static { - // Ensure that Smack is initialized. - SmackConfiguration.getVersion(); - - XmlPullParser xmlPullParser; - boolean roundtrip = false; - try { - XML_PULL_PARSER_FACTORY = XmlPullParserFactory.newInstance(); - xmlPullParser = XML_PULL_PARSER_FACTORY.newPullParser(); - try { - xmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); - // We could successfully set the feature - roundtrip = true; - } catch (XmlPullParserException e) { - // Doesn't matter if FEATURE_XML_ROUNDTRIP isn't available - LOGGER.log(Level.FINEST, "XmlPullParser does not support XML_ROUNDTRIP", e); - } - } - catch (XmlPullParserException e) { - // Something really bad happened - throw new AssertionError(e); - } - XML_PULL_PARSER_SUPPORTS_ROUNDTRIP = roundtrip; - } - // TODO: Rename argument name from 'stanza' to 'element'. public static XmlPullParser getParserFor(String stanza) throws XmlPullParserException, IOException { return getParserFor(new StringReader(stanza)); } + public static XmlPullParser getParserFor(InputStream inputStream) throws XmlPullParserException { + InputStreamReader inputStreamReader; + try { + inputStreamReader = new InputStreamReader(inputStream, StringUtils.UTF8); + } catch (UnsupportedEncodingException e) { + throw new AssertionError(e); + } + return SmackXmlParser.newXmlParser(inputStreamReader); + } + public static XmlPullParser getParserFor(Reader reader) throws XmlPullParserException, IOException { - XmlPullParser parser = newXmppParser(reader); + XmlPullParser parser = SmackXmlParser.newXmlParser(reader); // Wind the parser forward to the first start tag - int event = parser.getEventType(); - while (event != XmlPullParser.START_TAG) { - if (event == XmlPullParser.END_DOCUMENT) { + XmlPullParser.Event event = parser.getEventType(); + while (event != XmlPullParser.Event.START_ELEMENT) { + if (event == XmlPullParser.Event.END_DOCUMENT) { throw new IllegalArgumentException("Document contains no start tag"); } event = parser.next(); @@ -116,26 +93,6 @@ public class PacketParserUtils { return parser; } - public static XmlPullParser getParserFor(String stanza, String startTag) - throws XmlPullParserException, IOException { - XmlPullParser parser = getParserFor(stanza); - - while (true) { - int event = parser.getEventType(); - String name = parser.getName(); - if (event == XmlPullParser.START_TAG && name.equals(startTag)) { - break; - } - else if (event == XmlPullParser.END_DOCUMENT) { - throw new IllegalArgumentException("Could not find start tag '" + startTag - + "' in stanza: " + stanza); - } - parser.next(); - } - - return parser; - } - @SuppressWarnings("unchecked") public static S parseStanza(String stanza) throws Exception { return (S) parseStanza(getParserFor(stanza), null); @@ -166,53 +123,6 @@ public class PacketParserUtils { } } - /** - * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that - * FEATURE_PROCESS_NAMESPACES is enabled. - *

- * Note that not all XmlPullParser implementations will return a String on - * getText() if the parser is on START_TAG or END_TAG. So you must not rely on this - * behavior when using the parser. - *

- * - * @return A suitable XmlPullParser for XMPP parsing - * @throws XmlPullParserException - */ - public static XmlPullParser newXmppParser() throws XmlPullParserException { - XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - if (XML_PULL_PARSER_SUPPORTS_ROUNDTRIP) { - try { - parser.setFeature(FEATURE_XML_ROUNDTRIP, true); - } - catch (XmlPullParserException e) { - LOGGER.log(Level.SEVERE, - "XmlPullParser does not support XML_ROUNDTRIP, although it was first determined to be supported", - e); - } - } - return parser; - } - - /** - * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that - * FEATURE_PROCESS_NAMESPACES is enabled. - *

- * Note that not all XmlPullParser implementations will return a String on - * getText() if the parser is on START_TAG or END_TAG. So you must not rely on this - * behavior when using the parser. - *

- * - * @param reader - * @return A suitable XmlPullParser for XMPP parsing - * @throws XmlPullParserException - */ - public static XmlPullParser newXmppParser(Reader reader) throws XmlPullParserException { - XmlPullParser parser = newXmppParser(); - parser.setInput(reader); - return parser; - } - public static Message parseMessage(XmlPullParser parser) throws XmlPullParserException, IOException, SmackParsingException { return parseMessage(parser, null); } @@ -249,9 +159,9 @@ public class PacketParserUtils { // in arbitrary sub-elements. String thread = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -276,11 +186,12 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: // fall out } } @@ -295,9 +206,9 @@ public class PacketParserUtils { /** * Returns the textual content of an element as String. After this method returns the parser - * position will be END_TAG, following the established pull parser calling convention. + * position will be END_ELEMENT, following the established pull parser calling convention. *

- * The parser must be positioned on a START_TAG of an element which MUST NOT contain Mixed + * The parser must be positioned on a START_ELEMENT of an element which MUST NOT contain Mixed * Content (as defined in XML 3.2.2), or else an XmlPullParserException will be thrown. *

* This method is used for the parts where the XMPP specification requires elements that contain @@ -309,41 +220,36 @@ public class PacketParserUtils { * @throws IOException */ public static String parseElementText(XmlPullParser parser) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); String res; - if (parser.isEmptyElementTag()) { - res = ""; - } - else { - // Advance to the text of the Element - int event = parser.next(); - if (event != XmlPullParser.TEXT) { - if (event == XmlPullParser.END_TAG) { - // Assume this is the end tag of the start tag at the - // beginning of this method. Typical examples where this - // happens are body elements containing the empty string, - // ie. , which appears to be valid XMPP, or a - // least it's not explicitly forbidden by RFC 6121 5.2.3 - return ""; - } else { - throw new XmlPullParserException( - "Non-empty element tag not followed by text, while Mixed Content (XML 3.2.2) is disallowed"); - } - } - res = parser.getText(); - event = parser.next(); - if (event != XmlPullParser.END_TAG) { + // Advance to the text of the Element + XmlPullParser.Event event = parser.next(); + if (event != XmlPullParser.Event.TEXT_CHARACTERS) { + if (event == XmlPullParser.Event.END_ELEMENT) { + // Assume this is the end tag of the start tag at the + // beginning of this method. Typical examples where this + // happens are body elements containing the empty string, + // ie. , which appears to be valid XMPP, or a + // least it's not explicitly forbidden by RFC 6121 5.2.3 + return ""; + } else { throw new XmlPullParserException( - "Non-empty element tag contains child-elements, while Mixed Content (XML 3.2.2) is disallowed"); + "Non-empty element tag not followed by text, while Mixed Content (XML 3.2.2) is disallowed"); } } + res = parser.getText(); + event = parser.next(); + if (event != XmlPullParser.Event.END_ELEMENT) { + throw new XmlPullParserException( + "Non-empty element tag contains child-elements, while Mixed Content (XML 3.2.2) is disallowed"); + } return res; } /** * Returns the current element as string. *

- * The parser must be positioned on START_TAG. + * The parser must be positioned on START_ELEMENT. *

* Note that only the outermost namespace attributes ("xmlns") will be returned, not nested ones. * @@ -359,37 +265,10 @@ public class PacketParserUtils { public static CharSequence parseElement(XmlPullParser parser, boolean fullNamespaces) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); return parseContentDepth(parser, parser.getDepth(), fullNamespaces); } - /** - * Returns the content of a element. - *

- * The parser must be positioned on the START_TAG of the element which content is going to get - * returned. If the current element is the empty element, then the empty string is returned. If - * it is a element which contains just text, then just the text is returned. If it contains - * nested elements (and text), then everything from the current opening tag to the corresponding - * closing tag of the same depth is returned as String. - *

- * Note that only the outermost namespace attributes ("xmlns") will be returned, not nested ones. - * - * @param parser the XML pull parser - * @return the content of a tag - * @throws XmlPullParserException if parser encounters invalid XML - * @throws IOException if an IO error occurs - */ - public static CharSequence parseContent(XmlPullParser parser) - throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); - if (parser.isEmptyElementTag()) { - return ""; - } - // Advance the parser, since we want to parse the content of the current element - parser.next(); - return parseContentDepth(parser, parser.getDepth(), false); - } - public static CharSequence parseContentDepth(XmlPullParser parser, int depth) throws XmlPullParserException, IOException { return parseContentDepth(parser, depth, false); @@ -402,7 +281,7 @@ public class PacketParserUtils { * parent elements will be added to child elements that don't define a different namespace. *

* This method is able to parse the content with MX- and KXmlParser. KXmlParser does not support - * xml-roundtrip. i.e. return a String on getText() on START_TAG and END_TAG. We check for the + * xml-roundtrip. i.e. return a String on getText() on START_ELEMENT and END_ELEMENT. We check for the * XML_ROUNDTRIP feature. If it's not found we are required to work around this limitation, which * results in only partial support for XML namespaces ("xmlns"): Only the outermost namespace of * elements will be included in the resulting String, if fullNamespaces is set to false. @@ -419,7 +298,7 @@ public class PacketParserUtils { * @throws IOException */ public static CharSequence parseContentDepth(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { - if (parser.getFeature(FEATURE_XML_ROUNDTRIP)) { + if (parser.supportsRoundtrip()) { return parseContentDepthWithRoundtrip(parser, depth, fullNamespaces); } else { return parseContentDepthWithoutRoundtrip(parser, depth, fullNamespaces); @@ -429,15 +308,21 @@ public class PacketParserUtils { private static CharSequence parseContentDepthWithoutRoundtrip(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { XmlStringBuilder xml = new XmlStringBuilder(); - int event = parser.getEventType(); - boolean isEmptyElement = false; + XmlPullParser.Event event = parser.getEventType(); // XmlPullParser reports namespaces in nested elements even if *only* the outer ones defines // it. This 'flag' ensures that when a namespace is set for an element, it won't be set again // in a nested element. It's an ugly workaround that has the potential to break things. String namespaceElement = null; + boolean startElementJustSeen = false; outerloop: while (true) { switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: + if (startElementJustSeen) { + xml.rightAngleBracket(); + } + else { + startElementJustSeen = true; + } xml.halfOpenElement(parser.getName()); if (namespaceElement == null || fullNamespaces) { String namespace = parser.getNamespace(); @@ -449,18 +334,11 @@ public class PacketParserUtils { for (int i = 0; i < parser.getAttributeCount(); i++) { xml.attribute(parser.getAttributeName(i), parser.getAttributeValue(i)); } - if (parser.isEmptyElementTag()) { - xml.closeEmptyElement(); - isEmptyElement = true; - } - else { - xml.rightAngleBracket(); - } break; - case XmlPullParser.END_TAG: - if (isEmptyElement) { - // Do nothing as the element was already closed, just reset the flag - isEmptyElement = false; + case END_ELEMENT: + if (startElementJustSeen) { + xml.closeEmptyElement(); + startElementJustSeen = false; } else { xml.closeElement(parser.getName()); @@ -474,9 +352,16 @@ public class PacketParserUtils { break outerloop; } break; - case XmlPullParser.TEXT: + case TEXT_CHARACTERS: + if (startElementJustSeen) { + startElementJustSeen = false; + xml.rightAngleBracket(); + } xml.escape(parser.getText()); break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } event = parser.next(); } @@ -485,20 +370,39 @@ public class PacketParserUtils { private static CharSequence parseContentDepthWithRoundtrip(XmlPullParser parser, int depth, boolean fullNamespaces) throws XmlPullParserException, IOException { - StringBuilder sb = new StringBuilder(); - int event = parser.getEventType(); + XmlStringBuilder sb = new XmlStringBuilder(); + XmlPullParser.Event event = parser.getEventType(); + boolean startElementJustSeen = false; outerloop: while (true) { - // Only append the text if the parser is not on on an empty element' start tag. Empty elements are reported - // twice, so in order to prevent duplication we only add their text when we are on their end tag. - if (!(event == XmlPullParser.START_TAG && parser.isEmptyElementTag())) { + switch (event) { + case START_ELEMENT: + if (startElementJustSeen) { + sb.rightAngleBracket(); + } + startElementJustSeen = true; + break; + case END_ELEMENT: + boolean isEmptyElement = false; + if (startElementJustSeen) { + isEmptyElement = true; + startElementJustSeen = false; + } + if (!isEmptyElement) { + String text = parser.getText(); + sb.append(text); + } + if (parser.getDepth() <= depth) { + break outerloop; + } + break; + default: + startElementJustSeen = false; CharSequence text = parser.getText(); - if (event == XmlPullParser.TEXT) { - text = StringUtils.escapeForXmlText(text); + if (event == XmlPullParser.Event.TEXT_CHARACTERS) { + text = StringUtils.escapeForXml(text); } sb.append(text); - } - if (event == XmlPullParser.END_TAG && parser.getDepth() <= depth) { - break outerloop; + break; } event = parser.next(); } @@ -543,9 +447,9 @@ public class PacketParserUtils { // Parse sub-elements outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -587,11 +491,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return presence; @@ -622,10 +529,10 @@ public class PacketParserUtils { final IQ.Type type = IQ.Type.fromString(parser.getAttributeValue("", "type")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String elementName = parser.getName(); String namespace = parser.getNamespace(); switch (elementName) { @@ -640,7 +547,7 @@ public class PacketParserUtils { iqPacket = provider.parse(parser, outerXmlEnvironment); } // Note that if we reach this code, it is guranteed that the result IQ contained a child element - // (RFC 6120 § 8.2.3 6) because otherwhise we would have reached the END_TAG first. + // (RFC 6120 § 8.2.3 6) because otherwhise we would have reached the END_ELEMENT first. else { // No Provider found for the IQ stanza, parse it to an UnparsedIQ instance // so that the content of the IQ can be examined later on @@ -649,11 +556,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } // Decide what to do when an IQ packet was not understood @@ -694,15 +604,15 @@ public class PacketParserUtils { List mechanisms = new ArrayList(); boolean done = false; while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elementName = parser.getName(); if (elementName.equals("mechanism")) { mechanisms.add(parser.nextText()); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("mechanisms")) { done = true; } @@ -721,14 +631,14 @@ public class PacketParserUtils { */ public static Compress.Feature parseCompressionFeature(XmlPullParser parser) throws IOException, XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); String name; final int initialDepth = parser.getDepth(); List methods = new LinkedList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "method": @@ -736,7 +646,7 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: name = parser.getName(); switch (name) { case Compress.Feature.ELEMENT: @@ -744,9 +654,13 @@ public class PacketParserUtils { break outerloop; } } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); assert (parser.getDepth() == initialDepth); return new Compress.Feature(methods); } @@ -782,9 +696,9 @@ public class PacketParserUtils { String condition = null; Map descriptiveTexts = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if (name.equals("text")) { descriptiveTexts = parseDescriptiveTexts(parser, descriptiveTexts); @@ -794,11 +708,14 @@ public class PacketParserUtils { condition = parser.getName(); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new SASLFailure(condition, descriptiveTexts); @@ -826,9 +743,9 @@ public class PacketParserUtils { String conditionText = null; XmlEnvironment streamErrorXmlEnvironment = XmlEnvironment.from(parser, outerXmlEnvironment); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -841,8 +758,9 @@ public class PacketParserUtils { // If it's not a text element, that is qualified by the StreamError.NAMESPACE, // then it has to be the stream error code condition = StreamError.Condition.fromString(name); - if (!parser.isEmptyElementTag()) { - conditionText = parser.nextText(); + conditionText = parser.nextText(); + if (conditionText.isEmpty()) { + conditionText = null; } break; } @@ -852,11 +770,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new StreamError(condition, conditionText, descriptiveTexts, extensions); @@ -888,9 +809,9 @@ public class PacketParserUtils { builder.setErrorGenerator(parser.getAttributeValue("", "by")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (namespace) { @@ -901,8 +822,9 @@ public class PacketParserUtils { break; default: builder.setCondition(StanzaError.Condition.fromString(name)); - if (!parser.isEmptyElementTag()) { - builder.setConditionText(parser.nextText()); + String conditionText = parser.nextText(); + if (!conditionText.isEmpty()) { + builder.setConditionText(conditionText); } break; } @@ -911,10 +833,14 @@ public class PacketParserUtils { PacketParserUtils.addExtensionElement(extensions, parser, name, namespace, stanzaErrorXmlEnvironment); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } builder.setExtensions(extensions).setDescriptiveTexts(descriptiveTexts); @@ -949,14 +875,14 @@ public class PacketParserUtils { public static StartTls parseStartTlsFeature(XmlPullParser parser) throws XmlPullParserException, IOException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); assert (parser.getNamespace().equals(StartTls.NAMESPACE)); int initalDepth = parser.getDepth(); boolean required = false; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "required": @@ -964,13 +890,17 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initalDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); return new StartTls(required); } @@ -978,14 +908,11 @@ public class PacketParserUtils { ParserUtils.assertAtStartTag(parser); final int initialDepth = parser.getDepth(); boolean optional = false; - if (parser.isEmptyElementTag()) { - return new Session.Feature(optional); - } outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case Session.Feature.OPTIONAL_ELEMENT: @@ -993,10 +920,14 @@ public class PacketParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java index 2a06c9c3c..61a56e0f3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java @@ -29,6 +29,8 @@ import javax.xml.namespace.QName; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackUriSyntaxParsingException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityFullJid; @@ -38,8 +40,6 @@ import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class ParserUtils { @@ -49,7 +49,7 @@ public class ParserUtils { public static final String JID = "jid"; public static void assertAtStartTag(XmlPullParser parser) throws XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.START_TAG); + assert (parser.getEventType() == XmlPullParser.Event.START_ELEMENT); } public static void assertAtStartTag(XmlPullParser parser, String name) throws XmlPullParserException { @@ -58,13 +58,13 @@ public class ParserUtils { } public static void assertAtEndTag(XmlPullParser parser) throws XmlPullParserException { - assert (parser.getEventType() == XmlPullParser.END_TAG); + assert (parser.getEventType() == XmlPullParser.Event.END_ELEMENT); } public static void forwardToEndTagOfDepth(XmlPullParser parser, int depth) throws XmlPullParserException, IOException { - int event = parser.getEventType(); - while (!(event == XmlPullParser.END_TAG && parser.getDepth() == depth)) { + XmlPullParser.Event event = parser.getEventType(); + while (!(event == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == depth)) { event = parser.next(); } } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java b/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java index 6e2c3a781..ee75ac468 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/compress/provider/FailureProviderTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2018 Florian Schmaus + * Copyright 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,9 @@ import org.jivesoftware.smack.compress.packet.Failure; import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class FailureProviderTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java b/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java index 515053714..76682f07f 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/packet/StreamErrorTest.java @@ -18,19 +18,25 @@ package org.jivesoftware.smack.packet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; + +import java.io.IOException; import org.jivesoftware.smack.packet.StreamError.Condition; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class StreamErrorTest { - @Test - public void testParsingOfSimpleStreamError() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfSimpleStreamError(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -39,19 +45,17 @@ public class StreamErrorTest { " +" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); } - @Test - public void testParsingOfStreamErrorWithText() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfStreamErrorWithText(SmackTestUtil.XmlPullParserKind parserKind) throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -63,20 +67,19 @@ public class StreamErrorTest { "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); assertEquals("Replaced by new connection", error.getDescriptiveText()); } - @Test - public void testParsingOfStreamErrorWithTextAndOptionalElement() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParsingOfStreamErrorWithTextAndOptionalElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing @@ -91,12 +94,10 @@ public class StreamErrorTest { "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.conflict, error.getCondition()); assertEquals("Replaced by new connection", error.getDescriptiveText()); @@ -104,21 +105,20 @@ public class StreamErrorTest { assertNotNull(appSpecificElement); } - @Test - public void testStreamErrorXmlNotWellFormed() { - StreamError error = null; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testStreamErrorXmlNotWellFormed(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { final String xml = // Usually the stream:stream element has more attributes (to, version, ...) // We omit those, since they are not relevant for testing "" + "" + ""; - try { - XmlPullParser parser = PacketParserUtils.getParserFor(xml, "error"); - error = PacketParserUtils.parseStreamError(parser); - } catch (Exception e) { - fail(e.getMessage()); - } + + XmlPullParser parser = SmackTestUtil.getParserFor(xml, "error", parserKind); + StreamError error = PacketParserUtils.parseStreamError(parser); + assertNotNull(error); assertEquals(Condition.not_well_formed, error.getCondition()); } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java b/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java index db3283c3e..c8673bc0c 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/parsing/ParsingExceptionTest.java @@ -27,11 +27,11 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ParsingExceptionTest { @@ -39,6 +39,7 @@ public class ParsingExceptionTest { "" + "" + "" + + "text content" + "" + "" + ""; @@ -57,8 +58,7 @@ public class ParsingExceptionTest { public void consumeUnparsedInput() throws Exception { final String MESSAGE_EXCEPTION_ELEMENT = "<" + ThrowException.ELEMENT + " xmlns='" + ThrowException.NAMESPACE + "'>" + - "" + - "" + + "" + ""; XmlPullParser parser = TestUtils.getMessageParser( "" + diff --git a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java index 56da18453..b66024509 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderConfigTest.java @@ -22,10 +22,10 @@ import java.util.Collection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.FileUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Assert; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ProviderConfigTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java index b3c5ebe9f..5210e6344 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/provider/ProviderManagerTest.java @@ -21,9 +21,9 @@ import static org.junit.Assert.assertTrue; import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ProviderManagerTest { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java index 0288a55c4..adf5b2bb5 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2017 Florian Schmaus + * Copyright © 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,8 @@ */ package org.jivesoftware.smack.sasl; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.UnsupportedEncodingException; import java.util.HashMap; diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java b/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java new file mode 100644 index 000000000..cfa0b114e --- /dev/null +++ b/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java @@ -0,0 +1,165 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.test.util; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringReader; +import java.lang.reflect.InvocationTargetException; +import java.nio.charset.StandardCharsets; +import java.util.function.Predicate; + +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.packet.Element; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.provider.Provider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; +import org.jivesoftware.smack.xml.stax.StaxXmlPullParserFactory; +import org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory; + +public class SmackTestUtil { + + @SuppressWarnings("ImmutableEnumChecker") + public enum XmlPullParserKind { + StAX(StaxXmlPullParserFactory.class), + XPP3(Xpp3XmlPullParserFactory.class), + ; + + public final XmlPullParserFactory factory; + + XmlPullParserKind(Class factoryClass) { + try { + factory = factoryClass.getDeclaredConstructor().newInstance(); + } + catch (InstantiationException | IllegalAccessException | IllegalArgumentException + | InvocationTargetException | NoSuchMethodException | SecurityException e) { + throw new AssertionError(e); + } + } + } + + public static > E parse(CharSequence xml, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(xml, provider, parserKind); + } + + public static > E parse(InputStream inputStream, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(inputStream, provider, parserKind); + } + + public static > E parse(Reader reader, Class

providerClass, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + P provider = providerClassToProvider(providerClass); + return parse(reader, provider, parserKind); + } + + public static E parse(CharSequence xml, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + String xmlString = xml.toString(); + Reader reader = new StringReader(xmlString); + return parse(reader, provider, parserKind); + } + + public static E parse(InputStream inputStream, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + return parse(inputStreamReader, provider, parserKind); + } + + public static E parse(Reader reader, Provider provider, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + XmlPullParser parser = getParserFor(reader, parserKind); + E element = provider.parse(parser); + return element; + } + + public static XmlPullParser getParserFor(String xml, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + Reader reader = new StringReader(xml); + return getParserFor(reader, parserKind); + } + + public static XmlPullParser getParserFor(InputStream inputStream, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + return getParserFor(inputStreamReader, parserKind); + } + + public static XmlPullParser getParserFor(Reader reader, XmlPullParserKind parserKind) throws XmlPullParserException, IOException { + XmlPullParser parser = parserKind.factory.newXmlPullParser(reader); + forwardParserToStartElement(parser); + return parser; + } + + public static XmlPullParser getParserFor(String xml, QName startTagQName, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser = getParserFor(xml, parserKind); + forwardParserToStartElement(parser, (p) -> p.getQName().equals(startTagQName)); + return parser; + } + + public static XmlPullParser getParserFor(String xml, String startTagLocalpart, XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser = getParserFor(xml, parserKind); + forwardParserToStartElement(parser, (p) -> p.getName().equals(startTagLocalpart)); + return parser; + } + + private static > P providerClassToProvider(Class

providerClass) { + P provider; + // TODO: Consider adding a shortcut in case there is a static INSTANCE field holding an instance of the + // requested provider. + try { + provider = providerClass.getDeclaredConstructor().newInstance(); + } + catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException + | NoSuchMethodException | SecurityException e) { + throw new AssertionError(e); + } + return provider; + } + + private static void forwardParserToStartElement(XmlPullParser parser) throws XmlPullParserException, IOException { + forwardParserToStartElement(parser, p -> true); + } + + private static void forwardParserToStartElement(XmlPullParser parser, + Predicate doneForwarding) throws XmlPullParserException, IOException { + outerloop: while (true) { + XmlPullParser.Event event = parser.getEventType(); + switch (event) { + case START_ELEMENT: + if (doneForwarding.test(parser)) { + break outerloop; + } + break; + case END_DOCUMENT: + throw new IllegalArgumentException("Not matching START_ELEMENT found"); + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + parser.next(); + } + } +} diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java b/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java index b6a94d2a9..a1ebdc9ac 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java @@ -20,14 +20,11 @@ import java.io.IOException; import java.io.Reader; import java.io.StringReader; -import org.jivesoftware.smack.packet.ExtensionElement; -import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smack.util.ParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; +// TODO: Remove this class and replace it with SmackTestUtil. public final class TestUtils { private TestUtils() { } @@ -52,12 +49,12 @@ public final class TestUtils { return getParser(new StringReader(string), startTag); } - public static XmlPullParser getParser(Reader reader, String startTag) { + private static XmlPullParser getParser(Reader reader, String startTag) { XmlPullParser parser; try { - parser = PacketParserUtils.newXmppParser(reader); + parser = SmackXmlParser.newXmlParser(reader); if (startTag == null) { - while (parser.getEventType() != XmlPullParser.START_TAG) { + while (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { parser.next(); } return parser; @@ -65,7 +62,7 @@ public final class TestUtils { boolean found = false; while (!found) { - if ((parser.next() == XmlPullParser.START_TAG) && parser.getName().equals(startTag)) + if ((parser.next() == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(startTag)) found = true; } @@ -79,17 +76,4 @@ public final class TestUtils { return parser; } - public static EE parseExtensionElement(String elementString) - throws Exception { - return parseExtensionElement(getParser(elementString), null); - } - - @SuppressWarnings("unchecked") - public static EE parseExtensionElement(XmlPullParser parser, XmlEnvironment outerXmlEnvironment) - throws Exception { - ParserUtils.assertAtStartTag(parser); - final String elementName = parser.getName(); - final String namespace = parser.getNamespace(); - return (EE) PacketParserUtils.parseExtensionElement(elementName, namespace, parser, outerXmlEnvironment); - } } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java index c2ed877f5..1f23eed5a 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java +++ b/smack-core/src/test/java/org/jivesoftware/smack/util/PacketParserUtilsTest.java @@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Properties; +import java.util.function.Supplier; +import java.util.stream.Stream; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; @@ -42,15 +44,18 @@ import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.sasl.SASLError; import org.jivesoftware.smack.sasl.packet.SaslStreamElements; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.test.util.XmlUnitUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import com.jamesmurty.utils.XMLBuilder; import org.junit.Ignore; import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; import org.xml.sax.SAXException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class PacketParserUtilsTest { @@ -59,8 +64,9 @@ public class PacketParserUtilsTest { outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes"); } - @Test - public void singleMessageBodyTest() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void singleMessageBodyTest(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String defaultLanguage = Stanza.getDefaultLanguage(); String otherLanguage = determineNonDefaultLanguage(); @@ -79,7 +85,7 @@ public class PacketParserUtilsTest { .asString(outputProperties); Message message = PacketParserUtils - .parseMessage(PacketParserUtils.getParserFor(control)); + .parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(defaultLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -99,7 +105,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(otherLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -118,7 +124,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertEquals(defaultLanguage, message.getBody()); assertTrue(message.getBodyLanguages().isEmpty()); @@ -138,7 +144,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -159,7 +165,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -181,7 +187,7 @@ public class PacketParserUtilsTest { .t(otherLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -203,7 +209,7 @@ public class PacketParserUtilsTest { .t(defaultLanguage) .asString(outputProperties); - message = PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(control)); + message = PacketParserUtils.parseMessage(SmackTestUtil.getParserFor(control, parserKind)); assertNull(message.getBody()); assertFalse(message.getBodyLanguages().isEmpty()); @@ -708,13 +714,18 @@ public class PacketParserUtilsTest { .t("Good Message Body") .asString(outputProperties); + // XPP3 writes "end tag", StAX writes "end-tag". + Supplier> expectedContentOfExceptionMessage = () -> Stream.of("end tag", "end-tag"); + String invalidControl = validControl.replace("Good Message Body", "Bad Body"); try { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } invalidControl = validControl.replace("Good Message Body", "Bad Body"); @@ -723,7 +734,9 @@ public class PacketParserUtilsTest { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } invalidControl = validControl.replace("Good Message Body", "Bad Body"); @@ -732,9 +745,10 @@ public class PacketParserUtilsTest { PacketParserUtils.parseMessage(PacketParserUtils.getParserFor(invalidControl)); fail("Exception should be thrown"); } catch (XmlPullParserException e) { - assertTrue(e.getMessage().contains("end tag name ")); + String exceptionMessage = e.getMessage(); + boolean expectedContentFound = expectedContentOfExceptionMessage.get().anyMatch((expected) -> exceptionMessage.contains(expected)); + assertTrue(expectedContentFound); } - } @Test @@ -808,13 +822,13 @@ public class PacketParserUtilsTest { // CHECKSTYLE:ON } - @Test - public void parseContentDepthTest() throws Exception { - final String stanza = ""; - XmlPullParser parser = TestUtils.getParser(stanza, "iq"); - CharSequence content = PacketParserUtils.parseContent(parser); - assertEquals("", content.toString()); - } +// @Test +// public void parseContentDepthTest() throws Exception { +// final String stanza = ""; +// XmlPullParser parser = TestUtils.getParser(stanza, "iq"); +// CharSequence content = PacketParserUtils.parseContent(parser); +// assertEquals("", content.toString()); +// } @Test public void parseElementMultipleNamespace() diff --git a/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java b/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java new file mode 100644 index 000000000..ff82064c9 --- /dev/null +++ b/smack-core/src/test/java/org/jivesoftware/smack/xml/XmlPullParserTest.java @@ -0,0 +1,231 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.stream.Stream; + +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.test.util.SmackTestUtil; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; + +public class XmlPullParserTest { + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testSimpleEmptyElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + Reader reader = new StringReader(""); + XmlPullParser parser = parserKind.factory.newXmlPullParser(reader); + + assertEquals(XmlPullParser.Event.START_DOCUMENT, parser.getEventType()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + QName qname = parser.getQName(); + assertEquals(qname.getLocalPart(), "empty-element"); + assertEquals(qname.getPrefix(), XMLConstants.DEFAULT_NS_PREFIX); + assertEquals(qname.getNamespaceURI(), XMLConstants.NULL_NS_URI); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.next()); + assertEquals(XmlPullParser.Event.END_DOCUMENT, parser.next()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testQNameSimpleElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String simpleElement = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(simpleElement, parserKind); + QName qname = parser.getQName(); + assertEquals("outer-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + qname = parser.getQName(); + assertEquals("inner-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testQNamePrefixElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String prefixElement = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(prefixElement, parserKind); + QName qname = parser.getQName(); + assertEquals("outer-element", qname.getLocalPart()); + assertEquals("outer-namespace", qname.getNamespaceURI()); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + qname = parser.getQName(); + assertEquals("inner-element", qname.getLocalPart()); + assertEquals("inner-namespace", qname.getNamespaceURI()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesElementWithOneAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String elementWithOneAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(elementWithOneAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "", ""); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesNamespacedElementWithOneAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String namespacedElementWithOneAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(namespacedElementWithOneAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "", ""); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributesNamespacedElementWithOneNamespacedAttribute(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String namespacedElementWithOneNamespacedAttribute = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(namespacedElementWithOneNamespacedAttribute, parserKind); + assertAttributeHolds(parser, 0, "attribute-one", "attribute-namespace", "attribute-namespace-value"); + assertThrows(NullPointerException.class, () -> + assertAttributeHolds(parser, 1, "attribute-one", "", "")); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNamespacedAttributes(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertEquals(1, parser.getAttributeCount()); + + assertEquals("attributeOneName", parser.getAttributeName(0)); + assertEquals("attr", parser.getAttributePrefix(0)); + assertEquals("attribute-namespace", parser.getAttributeNamespace(0)); + QName attributeZeroQname = parser.getAttributeQName(0); + assertEquals("attributeOneName", attributeZeroQname.getLocalPart()); + assertEquals("attr", attributeZeroQname.getPrefix()); + assertEquals("attribute-namespace", attributeZeroQname.getNamespaceURI()); + + // Test how parser handle non-existent attributes. + assertNull(parser.getAttributeName(1)); + assertNull(parser.getAttributePrefix(1)); + assertNull(parser.getAttributeNamespace(1)); + QName attributeOneQname = parser.getAttributeQName(1); + assertNull(attributeOneQname); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testAttributeType(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = ""; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + + assertEquals("CDATA", parser.getAttributeType(0)); + + assertNull(parser.getAttributeType(1)); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextText(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + XmlPullParser parser; + + String simpleElement = "Element text"; + parser = SmackTestUtil.getParserFor(simpleElement, parserKind); + assertEquals("Element text", parser.nextText()); + + String complexElement = "Element 1 ' textElement 2 text"; + parser = SmackTestUtil.getParserFor(complexElement, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + assertEquals("element1", parser.getName()); + assertEquals(0, parser.getAttributeCount()); + assertEquals("Element 1 ' text", parser.nextText()); + + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.next()); + assertEquals("element2", parser.getName()); + assertEquals(0, parser.getAttributeCount()); + assertEquals("Element 2 text", parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextMixedContent(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = "Mixed content element textInner element text"; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertThrows(XmlPullParserException.class, () -> parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextOnEndElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String element = "Element text"; + XmlPullParser parser = SmackTestUtil.getParserFor(element, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.getEventType()); + assertEquals(XmlPullParser.Event.TEXT_CHARACTERS, parser.next()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.next()); + assertThrows(XmlPullParserException.class, () -> parser.nextText()); + } + + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNextTextOnEmptyElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException { + String[] emptyElementStream = Stream.of().toArray(String[]::new); + for (String emptyElement : emptyElementStream) { + XmlPullParser parser = SmackTestUtil.getParserFor(emptyElement, parserKind); + assertEquals(XmlPullParser.Event.START_ELEMENT, parser.getEventType()); + assertEquals("", parser.nextText()); + } + } + + private static void assertAttributeHolds(XmlPullParser parser, int attributeIndex, String expectedLocalpart, + String expectedPrefix, String expectedNamespace) { + QName qname = parser.getAttributeQName(attributeIndex); + String qnameNamespaceUri = qname.getNamespaceURI(); + + assertEquals(expectedLocalpart, qname.getLocalPart()); + assertEquals(expectedPrefix, qname.getPrefix()); + assertEquals(expectedNamespace, qnameNamespaceUri); + + assertEquals(qname.getLocalPart(), parser.getAttributeName(attributeIndex)); + assertEquals(qname.getPrefix(), parser.getAttributePrefix(attributeIndex)); + + final String expectedGetAttributeNamespace; + if (qnameNamespaceUri.equals(XMLConstants.NULL_NS_URI)) { + expectedGetAttributeNamespace = null; + } + else { + expectedGetAttributeNamespace = qnameNamespaceUri; + } + assertEquals(expectedGetAttributeNamespace, parser.getAttributeNamespace(attributeIndex)); + } +} diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java index 1ccc1949e..e224d6e3d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/CarbonManagerProvider.java @@ -21,15 +21,14 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.carbons.packet.CarbonExtension; import org.jivesoftware.smackx.carbons.packet.CarbonExtension.Direction; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.forward.provider.ForwardedProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * This class implements the {@link ExtensionElementProvider} to parse * carbon copied messages from a packet. It will return a {@link CarbonExtension} stanza extension. @@ -48,11 +47,11 @@ public class CarbonManagerProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java index 634eab400..618cb1d67 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java @@ -33,6 +33,7 @@ import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.packet.StanzaError.Type; import org.jivesoftware.smack.util.RandomUtil; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.dox.element.DnsIq; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java index 3800060eb..6a02e12b1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/provider/DnsIqProvider.java @@ -21,10 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; -import org.jivesoftware.smackx.dox.element.DnsIq; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.dox.element.DnsIq; public class DnsIqProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java index 17132703b..9d4d1185d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.eme.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; -import org.xmlpull.v1.XmlPullParser; - public class ExplicitMessageEncryptionProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java index e75d2ffe9..c20e06d8d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hashes/provider/HashElementProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Paul Schaub + * Copyright © 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,18 +20,19 @@ 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.hashes.HashManager; import org.jivesoftware.smackx.hashes.element.HashElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for HashElements. */ public class HashElementProvider extends ExtensionElementProvider { + public static final HashElementProvider INSTANCE = new HashElementProvider(); + @Override public HashElement parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String algo = parser.getAttributeValue(null, HashElement.ATTR_ALGO); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java index e4ee704ac..1b3a02adf 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/provider/MessageProcessingHintProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.hints.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hints.element.MessageProcessingHint; -import org.xmlpull.v1.XmlPullParser; - public abstract class MessageProcessingHintProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java index a2d5a4c76..60fe19445 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProvider.java @@ -22,14 +22,13 @@ import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hoxt.packet.AbstractHttpOverXmpp; import org.jivesoftware.smackx.shim.packet.HeadersExtension; import org.jivesoftware.smackx.shim.provider.HeadersProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Abstract parent for Req and Resp stanza providers. * @@ -63,7 +62,7 @@ public abstract class AbstractHttpOverXmppProvider'); @@ -175,7 +174,7 @@ public abstract class AbstractHttpOverXmppProvider"); startClosed = true; } - } else if (eventType == XmlPullParser.TEXT) { + } else if (eventType == XmlPullParser.Event.TEXT_CHARACTERS) { if (!startClosed) { builder.append('>'); @@ -223,16 +222,16 @@ public abstract class AbstractHttpOverXmppProvider { PutElement_V0_4_Content putElementV04Content = null; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "put": { @@ -89,11 +88,14 @@ public class SlotProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -115,9 +117,9 @@ public class SlotProvider extends IQProvider { Map headers = null; outerloop: while (true) { - int next = parser.next(); + XmlPullParser.Event next = parser.next(); switch (next) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "header": @@ -132,11 +134,14 @@ public class SlotProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java index 16158cd51..029e1f15e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetRequestProvider.java @@ -22,6 +22,8 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iot.control.element.IoTSetRequest; import org.jivesoftware.smackx.iot.control.element.SetBoolData; @@ -30,19 +32,16 @@ import org.jivesoftware.smackx.iot.control.element.SetDoubleData; import org.jivesoftware.smackx.iot.control.element.SetIntData; import org.jivesoftware.smackx.iot.control.element.SetLongData; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class IoTSetRequestProvider extends IQProvider { @Override public IoTSetRequest parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List data = new ArrayList<>(4); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "bool": { String valueName = parser.getAttributeValue(null, "name"); @@ -74,11 +73,14 @@ public class IoTSetRequestProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new IoTSetRequest(data); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java index 7343651d1..8ed282fe1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/control/provider/IoTSetResponseProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.control.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.control.element.IoTSetResponse; -import org.xmlpull.v1.XmlPullParser; - public class IoTSetResponseProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java index d7e1d8802..a56b8ae8c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataReadOutAcceptedProvider.java @@ -21,11 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.data.element.IoTDataReadOutAccepted; -import org.xmlpull.v1.XmlPullParser; - public class IoTDataReadOutAcceptedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java index 863ee169c..8c41c072f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTDataRequestProvider.java @@ -21,11 +21,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.data.element.IoTDataRequest; -import org.xmlpull.v1.XmlPullParser; - public class IoTDataRequestProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java index 84c47bf02..fbe9b2d7f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/data/provider/IoTFieldsExtensionProvider.java @@ -28,6 +28,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iot.data.element.IoTDataField; import org.jivesoftware.smackx.iot.data.element.IoTFieldsExtension; @@ -37,8 +39,6 @@ import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class IoTFieldsExtensionProvider extends ExtensionElementProvider { @@ -50,10 +50,10 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider nodes = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case NodeElement.ELEMENT: NodeElement node = parseNode(parser); @@ -61,11 +61,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider timestampElements = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name){ case TimestampElement.ELEMENT: TimestampElement timestampElement = parseTimestampElement(parser); @@ -87,11 +90,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider fields = new ArrayList<>(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: IoTDataField field = null; final String fieldName = parser.getAttributeValue(null, "name"); final String fieldValue = parser.getAttributeValue(null, "value"); @@ -134,11 +140,14 @@ public class IoTFieldsExtensionProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java index 1500c1ba1..713eb1df1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownProvider.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTDisown; import org.jivesoftware.smackx.iot.element.NodeInfo; @@ -26,7 +27,6 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTDisownProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java index 2d2739d26..ed33c28ce 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTDisownedProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTDisowned; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTDisownedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java index a30dca07d..1127115f1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRegisterProvider.java @@ -23,15 +23,14 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; 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.iot.discovery.element.IoTRegister; import org.jivesoftware.smackx.iot.discovery.element.Tag; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class IoTRegisterProvider extends IQProvider { @Override @@ -40,8 +39,8 @@ public class IoTRegisterProvider extends IQProvider { NodeInfo nodeInfo = NodeInfoParser.parse(parser); List tags = new ArrayList<>(); while (parser.getDepth() != initialDepth) { - int event = parser.next(); - if (event != XmlPullParser.START_TAG) { + XmlPullParser.Event event = parser.next(); + if (event != XmlPullParser.Event.START_ELEMENT) { continue; } final String element = parser.getName(); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java index 2590701e7..f0a201d32 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemoveProvider.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTRemove; import org.jivesoftware.smackx.iot.element.NodeInfo; @@ -28,7 +29,6 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; public class IoTRemoveProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java index c6a9c7eac..8faa40e7c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTRemovedProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTRemoved; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTRemovedProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java index a3f472f41..490d8034e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTUnregisterProvider.java @@ -18,13 +18,12 @@ package org.jivesoftware.smackx.iot.discovery.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.discovery.element.IoTUnregister; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -import org.xmlpull.v1.XmlPullParser; - public class IoTUnregisterProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java index bec0bc14a..21c729b01 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/parser/NodeInfoParser.java @@ -18,9 +18,9 @@ package org.jivesoftware.smackx.iot.parser; import static org.jivesoftware.smack.util.StringUtils.isNullOrEmpty; -import org.jivesoftware.smackx.iot.element.NodeInfo; +import org.jivesoftware.smack.xml.XmlPullParser; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smackx.iot.element.NodeInfo; public class NodeInfoParser { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java index 070335fb1..ae6013496 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCache; -import org.xmlpull.v1.XmlPullParser; - public class ClearCacheProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java index 1f6a48bba..ecd8ddd79 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/ClearCacheResponseProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCacheResponse; -import org.xmlpull.v1.XmlPullParser; - public class ClearCacheResponseProvider extends IQProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java index d00bdea61..95555246a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/FriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.Friend; import org.jxmpp.jid.BareJid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class FriendProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java index 0ba90db09..8d24f2811 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.IoTIsFriend; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTIsFriendProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java index 0e6fada1d..79a23836d 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/IoTIsFriendResponseProvider.java @@ -19,13 +19,13 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.IoTIsFriendResponse; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class IoTIsFriendResponseProvider extends IQProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java index f80d5ed09..f8351993c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/provisioning/provider/UnfriendProvider.java @@ -19,12 +19,12 @@ package org.jivesoftware.smackx.iot.provisioning.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.Unfriend; import org.jxmpp.jid.BareJid; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; public class UnfriendProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java index a6869e7c5..1f94c6927 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Checksum.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle_filetransfer.element; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.jingle.element.JingleContent; /** diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java index ffd3b51a5..2758f3c18 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/JingleFileTransferChild.java @@ -20,6 +20,7 @@ import java.io.File; import java.util.Date; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java index c0366695e..71a418818 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/element/Range.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Paul Schaub + * Copyright © 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.jingle_filetransfer.element; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.hashes.element.HashElement; /** @@ -29,14 +30,14 @@ public class Range implements NamedElement { public static final String ATTR_OFFSET = "offset"; public static final String ATTR_LENGTH = "length"; - private final int offset, length; + private final Integer offset, length; private final HashElement hash; /** * Create a Range element with default values. */ public Range() { - this(0, -1, null); + this(null, null, null); } /** @@ -44,7 +45,7 @@ public class Range implements NamedElement { * @param length length of the transmitted data in bytes. */ public Range(int length) { - this(0, length, null); + this(null, length, null); } /** @@ -62,7 +63,7 @@ public class Range implements NamedElement { * @param length number of bytes that shall be transferred. * @param hash hash of the bytes in the specified range. */ - public Range(int offset, int length, HashElement hash) { + public Range(Integer offset, Integer length, HashElement hash) { this.offset = offset; this.length = length; this.hash = hash; @@ -102,10 +103,11 @@ public class Range implements NamedElement { public CharSequence toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) { XmlStringBuilder sb = new XmlStringBuilder(this); - if (offset > 0) { + // TODO: (Introduce and) use XmlStringBuilder.optXmlAttribute(name, Number). + if (offset != null) { sb.attribute(ATTR_OFFSET, offset); } - if (length > 0) { + if (length != null) { sb.attribute(ATTR_LENGTH, length); } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java index 023a04fab..c781cfbb5 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/ChecksumProvider.java @@ -16,14 +16,14 @@ */ package org.jivesoftware.smackx.jingle_filetransfer.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; import org.jivesoftware.smackx.jingle.element.JingleContent; @@ -31,9 +31,6 @@ import org.jivesoftware.smackx.jingle_filetransfer.element.Checksum; import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChild; import org.jivesoftware.smackx.jingle_filetransfer.element.Range; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for the Checksum element. */ @@ -54,10 +51,11 @@ public class ChecksumProvider extends ExtensionElementProvider { boolean go = true; while (go) { - int tag = parser.nextTag(); + XmlPullParser.TagEvent tag = parser.nextTag(); String n = parser.getText(); - if (tag == START_TAG) { + switch (tag) { + case START_ELEMENT: switch (n) { case HashElement.ELEMENT: hashElement = new HashElementProvider().parse(parser); @@ -70,7 +68,8 @@ public class ChecksumProvider extends ExtensionElementProvider { int l = length == null ? -1 : Integer.parseInt(length); range = new Range(o, l); } - } else if (tag == END_TAG) { + break; + case END_ELEMENT: switch (n) { case Range.ELEMENT: if (hashElement != null && range != null) { @@ -88,6 +87,7 @@ public class ChecksumProvider extends ExtensionElementProvider { } go = false; } + break; } } return new Checksum(creator, name, cb.build()); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java index a7ee806e3..1eba4075a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Paul Schaub + * Copyright 2017 Paul Schaub, 2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +16,16 @@ */ package org.jivesoftware.smackx.jingle_filetransfer.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; @@ -34,8 +35,6 @@ import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChi import org.jivesoftware.smackx.jingle_filetransfer.element.Range; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Provider for JingleContentDescriptionFileTransfer elements. @@ -46,20 +45,18 @@ public class JingleFileTransferProvider @Override public JingleFileTransfer parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { ArrayList payloads = new ArrayList<>(); - boolean inRange = false; JingleFileTransferChild.Builder builder = JingleFileTransferChild.getBuilder(); - HashElement inRangeHash = null; - int offset = 0; - int length = -1; + String elementName; while (true) { - int tag = parser.nextTag(); - String elem = parser.getName(); + XmlPullParser.TagEvent tag = parser.nextTag(); - if (tag == START_TAG) { - switch (elem) { + switch (tag) { + case START_ELEMENT: + elementName = parser.getName(); + switch (elementName) { case JingleFileTransferChild.ELEM_DATE: try { builder.setDate(XmppDateTime.parseXEP0082Date(parser.nextText())); @@ -85,36 +82,20 @@ public class JingleFileTransferProvider break; case Range.ELEMENT: - inRange = true; - String offsetString = parser.getAttributeValue(null, Range.ATTR_OFFSET); - String lengthString = parser.getAttributeValue(null, Range.ATTR_LENGTH); - offset = (offsetString != null ? Integer.parseInt(offsetString) : 0); - length = (lengthString != null ? Integer.parseInt(lengthString) : -1); + Range range = parseRangeElement(parser); + builder.setRange(range); - if (parser.isEmptyElementTag()) { - inRange = false; - builder.setRange(new Range(offset, length)); - } break; case HashElement.ELEMENT: - if (inRange) { - inRangeHash = new HashElementProvider().parse(parser); - } else { - builder.setHash(new HashElementProvider().parse(parser)); - } + HashElement hashElement = HashElementProvider.INSTANCE.parse(parser); + builder.setHash(hashElement); break; } - - } else if (tag == END_TAG) { - switch (elem) { - - case Range.ELEMENT: - inRange = false; - builder.setRange(new Range(offset, length, inRangeHash)); - inRangeHash = null; - break; - + break; + case END_ELEMENT: + elementName = parser.getName(); + switch (elementName) { case JingleFileTransferChild.ELEMENT: payloads.add(builder.build()); builder = JingleFileTransferChild.getBuilder(); @@ -123,7 +104,42 @@ public class JingleFileTransferProvider case JingleFileTransfer.ELEMENT: return new JingleFileTransfer(payloads); } + break; } } } + + public static Range parseRangeElement(XmlPullParser parser) throws IOException, XmlPullParserException, SmackParsingException { + final int initialDepth = parser.getDepth(); + final Integer offset = ParserUtils.getIntegerAttribute(parser, Range.ATTR_OFFSET); + final Integer length = ParserUtils.getIntegerAttribute(parser, Range.ATTR_LENGTH); + + HashElement hashElement = null; + outerloop: while (true) { + String element; + XmlPullParser.Event event = parser.next(); + switch (event) { + case START_ELEMENT: + element = parser.getName(); + switch (element) { + case HashElement.ELEMENT: + hashElement = HashElementProvider.INSTANCE.parse(parser); + break; + } + break; + case END_ELEMENT: + element = parser.getName(); + if (element.equals(Range.ELEMENT) && parser.getDepth() == initialDepth) { + break outerloop; + } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + } + + return new Range(offset, length, hashElement); + } + } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java index deea55e21..5c5f2dc0f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/AbstractJsonExtensionProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.json.packet.AbstractJsonPacketExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class AbstractJsonExtensionProvider extends ExtensionElementProvider { @Override diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java index a2f8ab42d..1af384165 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamFinIQProvider.java @@ -22,14 +22,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; 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.mam.element.MamFinIQ; import org.jivesoftware.smackx.rsm.packet.RSMSet; import org.jivesoftware.smackx.rsm.provider.RSMSetProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Fin IQ Provider class. * @@ -48,18 +47,21 @@ public class MamFinIQProvider extends IQProvider { RSMSet rsmSet = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals(RSMSet.ELEMENT)) { rsmSet = RSMSetProvider.INSTANCE.parse(parser); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java index 1cd3b3cfb..632ae4946 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamPrefsIQProvider.java @@ -22,14 +22,14 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.element.MamPrefsIQ.DefaultBehavior; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * MAM Preferences IQ Provider class. @@ -58,10 +58,10 @@ public class MamPrefsIQProvider extends IQProvider { List neverJids = null; outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "always": alwaysJids = iterateJids(parser); @@ -71,11 +71,14 @@ public class MamPrefsIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -88,10 +91,10 @@ public class MamPrefsIQProvider extends IQProvider { int initialDepth = parser.getDepth(); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case "jid": parser.next(); @@ -99,11 +102,14 @@ public class MamPrefsIQProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java index 185165c90..853f199f4 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamQueryIQProvider.java @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Query IQ Provider class. * @@ -47,22 +46,25 @@ public class MamQueryIQProvider extends IQProvider { String node = parser.getAttributeValue("", "node"); outerloop: while (true) { - final int eventType = parser.next(); + final XmlPullParser.Event eventType = parser.next(); final String name = parser.getName(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (name) { case DataForm.ELEMENT: dataForm = DataFormProvider.INSTANCE.parse(parser); break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java index f3c502d0e..61d07edf2 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/provider/MamResultProvider.java @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.forward.provider.ForwardedProvider; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MAM Result Provider class. * @@ -46,21 +45,24 @@ public class MamResultProvider extends ExtensionElementProvider { @Override @@ -51,11 +48,11 @@ public class MarkupElementProvider extends ExtensionElementProvider lis = new ArrayList<>(); while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); int start, end; switch (tag) { - case START_TAG: + case START_ELEMENT: switch (name) { case BlockQuoteElement.ELEMENT: start = ParserUtils.getIntegerAttributeOrThrow(parser, BlockQuoteElement.ATTR_START, @@ -109,7 +106,7 @@ public class MarkupElementProvider extends ExtensionElementProvider occupants = new HashMap<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -58,7 +58,7 @@ public class MUCLightAffiliationsIQProvider extends IQProvider { HashMap users = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("room")) { rooms = parseBlocking(parser, rooms); @@ -57,7 +57,7 @@ public class MUCLightBlockingIQProvider extends IQProvider { users = parseBlocking(parser, users); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java index a69e2c691..b8eb5558a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightConfigurationIQProvider.java @@ -21,13 +21,12 @@ import java.util.HashMap; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muclight.MUCLightRoomConfiguration; import org.jivesoftware.smackx.muclight.element.MUCLightConfigurationIQ; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * MUC Light configuration IQ provider class. * @@ -44,9 +43,9 @@ public class MUCLightConfigurationIQProvider extends IQProvider customConfigs = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -61,7 +60,7 @@ public class MUCLightConfigurationIQProvider extends IQProvider customConfigs = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("prev-version")) { prevVersion = parser.nextText(); @@ -63,7 +62,7 @@ public class MUCLightConfigurationsChangeProvider extends ExtensionElementProvid customConfigs.put(parser.getName(), parser.nextText()); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java index 8718e2141..5d62c5888 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightInfoIQProvider.java @@ -21,6 +21,8 @@ import java.util.HashMap; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muclight.MUCLightAffiliation; import org.jivesoftware.smackx.muclight.MUCLightRoomConfiguration; @@ -28,8 +30,6 @@ import org.jivesoftware.smackx.muclight.element.MUCLightInfoIQ; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * MUC Light info IQ provider class. @@ -48,9 +48,9 @@ public class MUCLightInfoIQProvider extends IQProvider { HashMap occupants = new HashMap<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("version")) { version = parser.nextText(); @@ -62,7 +62,7 @@ public class MUCLightInfoIQProvider extends IQProvider { outerloop2: while (true) { eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("roomname")) { roomName = parser.nextText(); } else if (parser.getName().equals("subject")) { @@ -74,7 +74,7 @@ public class MUCLightInfoIQProvider extends IQProvider { customConfigs.put(parser.getName(), parser.nextText()); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == depth) { break outerloop2; } @@ -86,7 +86,7 @@ public class MUCLightInfoIQProvider extends IQProvider { occupants = iterateOccupants(parser); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == initialDepth) { break outerloop; } @@ -101,14 +101,14 @@ public class MUCLightInfoIQProvider extends IQProvider { int depth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("user")) { MUCLightAffiliation affiliation = MUCLightAffiliation .fromString(parser.getAttributeValue("", "affiliation")); occupants.put(JidCreate.from(parser.nextText()), affiliation); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getDepth() == depth) { break outerloop; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java index 6d4369b7b..a19e53cce 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/push_notifications/provider/RemoteDisablingProvider.java @@ -20,13 +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.push_notifications.element.PushNotificationsElements.RemoteDisablingExtension; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Push Notifications Remote Disabling Provider class. @@ -43,8 +43,8 @@ public class RemoteDisablingProvider extends ExtensionElementProvider { @@ -53,8 +53,8 @@ public class ReferenceProvider extends ExtensionElementProvider provider = ProviderManager.getExtensionProvider(elementName, namespace); @@ -62,7 +62,7 @@ public class ReferenceProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java index 6f336b55c..ce59799df 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java @@ -18,9 +18,9 @@ package org.jivesoftware.smackx.sid.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.sid.element.StanzaIdElement; +import org.jivesoftware.smack.xml.XmlPullParser; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smackx.sid.element.StanzaIdElement; public class StanzaIdProvider extends ExtensionElementProvider { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java index fa5c8680b..a18654cc3 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/SpoilerManager.java @@ -21,6 +21,7 @@ import java.util.WeakHashMap; import org.jivesoftware.smack.Manager; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; public final class SpoilerManager extends Manager { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java index 1b71b6dba..65bb14e4b 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/element/SpoilerElement.java @@ -25,6 +25,7 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.spoiler.SpoilerManager; public class SpoilerElement implements ExtensionElement { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java index 28b7a0506..0755bd9f8 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/spoiler/provider/SpoilerProvider.java @@ -16,18 +16,15 @@ */ package org.jivesoftware.smackx.spoiler.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.TEXT; - import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; -import org.jivesoftware.smackx.spoiler.element.SpoilerElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.spoiler.element.SpoilerElement; public class SpoilerProvider extends ExtensionElementProvider { @@ -39,13 +36,16 @@ public class SpoilerProvider extends ExtensionElementProvider { String hint = null; outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); switch (tag) { - case TEXT: + case TEXT_CHARACTERS: hint = parser.getText(); break; - case END_TAG: + case END_ELEMENT: break outerloop; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new SpoilerElement(lang, hint); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java index dff548f50..363edca3f 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/ExperimentalInitializerTest.java @@ -16,13 +16,13 @@ */ package org.jivesoftware.smackx; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import org.jivesoftware.smack.experimental.ExperimentalInitializer; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExperimentalInitializerTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java index d0dbc2cf9..fb88f6e95 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/carbons/CarbonTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.carbons; -import static org.jivesoftware.smack.test.util.CharSequenceEquals.equalsCharSequence; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import java.io.IOException; import java.util.Properties; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.ExperimentalInitializerTest; import org.jivesoftware.smackx.carbons.packet.CarbonExtension; @@ -30,8 +32,9 @@ import org.jivesoftware.smackx.carbons.provider.CarbonManagerProvider; import org.jivesoftware.smackx.forward.packet.Forwarded; import com.jamesmurty.utils.XMLBuilder; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class CarbonTest extends ExperimentalInitializerTest { @@ -65,10 +68,10 @@ public class CarbonTest extends ExperimentalInitializerTest { assertEquals(null, fwd.getDelayInformation()); // check message - assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); + assertEquals("romeo@montague.com", fwd.getForwardedStanza().getFrom().toString()); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("sent", parser.getName()); } @@ -91,20 +94,19 @@ public class CarbonTest extends ExperimentalInitializerTest { assertEquals(CarbonExtension.Direction.received, cc.getDirection()); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("received", parser.getName()); } - @Test(expected = Exception.class) - public void carbonEmptyTest() throws Exception { - XmlPullParser parser; + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void carbonEmptyTest(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String control; control = XMLBuilder.create("sent") .a("xmlns", "urn:xmpp:forwarded:0") .asString(outputProperties); - parser = PacketParserUtils.getParserFor(control); - new CarbonManagerProvider().parse(parser); + assertThrows(IOException.class, () -> SmackTestUtil.parse(control, CarbonManagerProvider.class, parserKind)); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java index 383e3d441..ed8b4fbfa 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/AcknowledgedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.AcknowledgedExtension; import org.jivesoftware.smackx.chat_markers.provider.AcknowledgedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class AcknowledgedExtensionTest { @@ -41,18 +42,18 @@ public class AcknowledgedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.AcknowledgedExtension("message-1")); - Assert.assertEquals(acknowledgedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(acknowledgedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkDisplayedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(acknowledgedExtension); AcknowledgedExtension acknowledgedExtension1 = new AcknowledgedProvider().parse(parser); - Assert.assertEquals("message-1", acknowledgedExtension1.getId()); + assertEquals("message-1", acknowledgedExtension1.getId()); Message message = PacketParserUtils.parseStanza(acknowledgedMessageStanza); AcknowledgedExtension acknowledgedExtension2 = AcknowledgedExtension.from(message); - Assert.assertEquals("message-1", acknowledgedExtension2.getId()); + assertEquals("message-1", acknowledgedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java index 7cf6daf9a..f4f1295e7 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/DisplayedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.DisplayedExtension; import org.jivesoftware.smackx.chat_markers.provider.DisplayedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class DisplayedExtensionTest { @@ -41,18 +42,18 @@ public class DisplayedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.DisplayedExtension("message-1")); - Assert.assertEquals(displayedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(displayedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkDisplayedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(displayedExtension); DisplayedExtension displayedExtension1 = new DisplayedProvider().parse(parser); - Assert.assertEquals("message-1", displayedExtension1.getId()); + assertEquals("message-1", displayedExtension1.getId()); Message message = PacketParserUtils.parseStanza(displayedMessageStanza); DisplayedExtension displayedExtension2 = DisplayedExtension.from(message); - Assert.assertEquals("message-1", displayedExtension2.getId()); + assertEquals("message-1", displayedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java index 34b201b5e..91944acc1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/MarkableExtensionTest.java @@ -16,17 +16,18 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.MarkableExtension; import org.jivesoftware.smackx.chat_markers.provider.MarkableProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class MarkableExtensionTest { @@ -42,18 +43,18 @@ public class MarkableExtensionTest { message.setStanzaId("message-1"); message.setBody("My lord, dispatch; read o'er these articles."); message.addExtension(ChatMarkersElements.MarkableExtension.INSTANCE); - Assert.assertEquals(markableMessageStanza, message.toXML().toString()); + assertEquals(markableMessageStanza, message.toXML().toString()); } @Test public void checkMarkableProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(markableExtension); MarkableExtension markableExtension1 = new MarkableProvider().parse(parser); - Assert.assertEquals(markableExtension, markableExtension1.toXML().toString()); + assertEquals(markableExtension, markableExtension1.toXML().toString()); Message message = PacketParserUtils.parseStanza(markableMessageStanza); MarkableExtension markableExtension2 = MarkableExtension.from(message); - Assert.assertEquals(markableExtension, markableExtension2.toXML().toString()); + assertEquals(markableExtension, markableExtension2.toXML().toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java index 417c95471..be80449b9 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/chat_markers/ReceivedExtensionTest.java @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.chat_markers; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements; import org.jivesoftware.smackx.chat_markers.element.ChatMarkersElements.ReceivedExtension; import org.jivesoftware.smackx.chat_markers.provider.ReceivedProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class ReceivedExtensionTest { @@ -41,18 +42,18 @@ public class ReceivedExtensionTest { Message message = new Message(JidCreate.from("northumberland@shakespeare.lit/westminster")); message.setStanzaId("message-2"); message.addExtension(new ChatMarkersElements.ReceivedExtension("message-1")); - Assert.assertEquals(receivedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(receivedMessageStanza, message.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test public void checkReceivedProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(receivedExtension); ReceivedExtension receivedExtension1 = new ReceivedProvider().parse(parser); - Assert.assertEquals("message-1", receivedExtension1.getId()); + assertEquals("message-1", receivedExtension1.getId()); Message message = PacketParserUtils.parseStanza(receivedMessageStanza); ReceivedExtension receivedExtension2 = ReceivedExtension.from(message); - Assert.assertEquals("message-1", receivedExtension2.getId()); + assertEquals("message-1", receivedExtension2.getId()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java index debdfa0e7..c69150dc2 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java @@ -23,7 +23,7 @@ import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smackx.colors.ConsistentColor.Deficiency; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ConsistentColorsTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java index ed0aeec5b..684219a02 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/ExplicitMessageEncryptionElementTest.java @@ -26,9 +26,10 @@ import java.util.List; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExplicitMessageEncryptionElementTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java index 3599924fd..1060dfc6e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/eme/provider/ExplicitMessageEncryptionProviderTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Florian Schmaus + * Copyright 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,14 +16,19 @@ */ package org.jivesoftware.smackx.eme.provider; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.jivesoftware.smack.test.util.TestUtils; +import java.io.IOException; + +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement.ExplicitMessageEncryptionProtocol; -import org.junit.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; public class ExplicitMessageEncryptionProviderTest { @@ -34,15 +39,19 @@ public class ExplicitMessageEncryptionProviderTest { private static final String UNKNOWN_EME_ELEMENT = ""; - @Test - public void testParseOxEmeElement() throws Exception { - ExplicitMessageEncryptionElement eme = TestUtils.parseExtensionElement(OX_EME_ELEMENT); + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParseOxEmeElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + ExplicitMessageEncryptionElement eme = SmackTestUtil.parse(OX_EME_ELEMENT, ExplicitMessageEncryptionProvider.class, parserKind); assertEquals(ExplicitMessageEncryptionProtocol.openpgpV0, eme.getProtocol()); } - @Test - public void testParseUnknownEmeElement() throws Exception { - ExplicitMessageEncryptionElement eme = TestUtils.parseExtensionElement(UNKNOWN_EME_ELEMENT); + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testParseUnknownEmeElement(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { + ExplicitMessageEncryptionElement eme = SmackTestUtil.parse(UNKNOWN_EME_ELEMENT, ExplicitMessageEncryptionProvider.class, parserKind); assertEquals(UNKNOWN_NAMESPACE, eme.getEncryptionNamespace()); assertEquals(UNKNOWN_NAME, eme.getName()); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java index e67342a9e..b85e32688 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashElementTest.java @@ -20,7 +20,7 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertTrue; import static org.jivesoftware.smackx.hashes.HashManager.ALGORITHM.SHA_256; -import static org.junit.Assert.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; @@ -29,7 +29,7 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test toXML and parse of HashElement and HashElementProvider. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java index 44ae4fdc5..e0d6bd65c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java @@ -21,7 +21,7 @@ import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test HashManager functionality. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java index 4155a6f48..5af9ff08c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/AbstractHttpOverXmppProviderTest.java @@ -16,15 +16,20 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.IOException; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hoxt.packet.AbstractHttpOverXmpp; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq; @@ -32,8 +37,9 @@ import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppResp; import org.jivesoftware.smackx.shim.packet.Header; import org.jivesoftware.smackx.shim.packet.HeadersExtension; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; /** * Tests correct headers and data parsing in 'req' and 'resp' elements. @@ -84,8 +90,10 @@ public class AbstractHttpOverXmppProviderTest { checkHeaders(body.getHeaders(), expectedHeaders); } - @Test - public void isTextDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isTextDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String expectedText = "@prefix dc: ." + "@base ." + " dc:title \"HTTP over XMPP\";" @@ -103,12 +111,14 @@ public class AbstractHttpOverXmppProviderTest { + ""; AbstractHttpOverXmpp.Text text = (AbstractHttpOverXmpp.Text) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(expectedText, text.getText()); } - @Test - public void isXmlDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isXmlDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String expectedXml = "" // no xmlns here + "" + "" @@ -137,12 +147,14 @@ public class AbstractHttpOverXmppProviderTest { + encodedXml + ""; AbstractHttpOverXmpp.Xml xmlProviderValue = (AbstractHttpOverXmpp.Xml) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(expectedXml, xmlProviderValue.getText()); } - @Test - public void isBase64DataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isBase64DataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String base64Data = "iVBORw0KGgoAAAANSUhEUgAAASwAAAGQCAYAAAAUdV17AAAAAXNSR0 ... tVWJd+e+y1AAAAABJRU5ErkJggg=="; String string = "" + "

Clayster
" @@ -150,12 +162,14 @@ public class AbstractHttpOverXmppProviderTest { + base64Data + ""; AbstractHttpOverXmpp.Base64 base64ProviderValue = (AbstractHttpOverXmpp.Base64) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(base64Data, base64ProviderValue.getText()); } - @Test - public void isChunkedBase64DataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isChunkedBase64DataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String streamId = "Stream0001"; String chunkBase64Data = " "; String string = "" @@ -164,12 +178,14 @@ public class AbstractHttpOverXmppProviderTest { + chunkBase64Data + ""; AbstractHttpOverXmpp.ChunkedBase64 chunkedBase64Value = (AbstractHttpOverXmpp.ChunkedBase64) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(streamId, chunkedBase64Value.getStreamId()); } - @Test - public void isIbbDataParsedCorrectly() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void isIbbDataParsedCorrectly(SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { String sid = "Stream0002"; String ibbData = " "; String string = "" @@ -178,14 +194,16 @@ public class AbstractHttpOverXmppProviderTest { + ibbData + ""; AbstractHttpOverXmpp.Ibb ibbValue = (AbstractHttpOverXmpp.Ibb) parseAbstractBody( - string, "resp").getData().getChild(); + string, "resp", parserKind).getData().getChild(); assertEquals(sid, ibbValue.getSid()); } // TODO The method name makes no sense after the HOXT re-design, change to parseHttpOverXmppResp() - private static HttpOverXmppResp parseAbstractBody(String string, String tag) throws Exception { + private static HttpOverXmppResp parseAbstractBody(String string, String tag, + SmackTestUtil.XmlPullParserKind parserKind) + throws XmlPullParserException, IOException, SmackParsingException { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); - XmlPullParser parser = PacketParserUtils.getParserFor(string, tag); + XmlPullParser parser = SmackTestUtil.getParserFor(string, tag, parserKind); IQ iq = provider.parse(parser); assertTrue(iq instanceof HttpOverXmppResp); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java index 9845e0ecc..f443db501 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/Base64BinaryChunkProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.Base64BinaryChunk; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; /** * Tests correct parsing of 'chunk' elements in Message stanza. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java index d64427dde..e5d3e1e54 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.HttpMethod; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class HttpOverXmppReqProviderTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java index 3001eb844..d0a80ed14 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppRespProviderTest.java @@ -16,17 +16,17 @@ */ package org.jivesoftware.smackx.hoxt.provider; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppResp; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; /** * Tests correct attribute parsing in 'resp' element. diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java index eb7333b6d..566ca03c3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/FileTooLargeErrorCreateTest.java @@ -16,10 +16,11 @@ */ package org.jivesoftware.smackx.httpfileupload; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smackx.httpfileupload.element.FileTooLargeError; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FileTooLargeErrorCreateTest { private static final String fileTooLargeErrorExtensionExample @@ -31,8 +32,8 @@ public class FileTooLargeErrorCreateTest { public void checkFileTooLargeErrorExtensionCreation() { FileTooLargeError fileTooLargeError = new FileTooLargeError(20000); - Assert.assertEquals(20000, fileTooLargeError.getMaxFileSize()); - Assert.assertEquals(fileTooLargeErrorExtensionExample, fileTooLargeError.toXML().toString()); + assertEquals(20000, fileTooLargeError.getMaxFileSize()); + assertEquals(fileTooLargeErrorExtensionExample, fileTooLargeError.toXML().toString()); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java index 73b71d93d..36bc6931f 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotCreateTest.java @@ -17,14 +17,14 @@ package org.jivesoftware.smackx.httpfileupload; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.net.URL; import org.jivesoftware.smackx.httpfileupload.element.Slot; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; public class SlotCreateTest { @@ -39,9 +39,9 @@ public class SlotCreateTest { Slot slot = new Slot(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png")); - Assert.assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), + assertEquals(new URL("https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getPutUrl()); - Assert.assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), + assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getGetUrl()); assertXMLEqual(testSlot, slot.getChildElementXML().toString()); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java index d49ebee73..7a32fd2fe 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java @@ -17,13 +17,14 @@ package org.jivesoftware.smackx.httpfileupload; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import org.jivesoftware.smackx.httpfileupload.element.SlotRequest; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.JidTestUtil; import org.xml.sax.SAXException; @@ -46,9 +47,9 @@ public class SlotRequestCreateTest { public void checkSlotRequestCreation() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 23456, "image/jpeg"); - Assert.assertEquals("my_juliet.png", slotRequest.getFilename()); - Assert.assertEquals(23456, slotRequest.getSize()); - Assert.assertEquals("image/jpeg", slotRequest.getContentType()); + assertEquals("my_juliet.png", slotRequest.getFilename()); + assertEquals(23456, slotRequest.getSize()); + assertEquals("image/jpeg", slotRequest.getContentType()); assertXMLEqual(testRequest, slotRequest.getChildElementXML().toString()); } @@ -57,20 +58,22 @@ public class SlotRequestCreateTest { public void checkSlotRequestCreationWithoutContentType() throws SAXException, IOException { SlotRequest slotRequest = new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_romeo.png", 52523); - Assert.assertEquals("my_romeo.png", slotRequest.getFilename()); - Assert.assertEquals(52523, slotRequest.getSize()); - Assert.assertEquals(null, slotRequest.getContentType()); + assertEquals("my_romeo.png", slotRequest.getFilename()); + assertEquals(52523, slotRequest.getSize()); + assertEquals(null, slotRequest.getContentType()); assertXMLEqual(testRequestWithoutContentType, slotRequest.getChildElementXML().toString()); } - @Test(expected = IllegalArgumentException.class) + @Test public void checkSlotRequestCreationNegativeSize() { - new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", -23456, "image/jpeg"); + assertThrows(IllegalArgumentException.class, () -> + new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", -23456, "image/jpeg")); } - @Test(expected = IllegalArgumentException.class) + @Test public void checkSlotRequestCreationZeroSize() { - new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 0, "image/jpeg"); + assertThrows(IllegalArgumentException.class, () -> + new SlotRequest(JidTestUtil.DOMAIN_BARE_JID_1, "my_juliet.png", 0, "image/jpeg")); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java index 5983baeec..8b8dce4f1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/FileTooLargeErrorProviderTest.java @@ -16,13 +16,14 @@ */ package org.jivesoftware.smackx.httpfileupload.provider; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.httpfileupload.element.FileTooLargeError; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FileTooLargeErrorProviderTest { @@ -52,9 +53,9 @@ public class FileTooLargeErrorProviderTest { public void checkSlotErrorFileToLarge() throws Exception { IQ fileTooLargeErrorIQ = PacketParserUtils.parseStanza(slotErrorFileToLarge); - Assert.assertEquals(IQ.Type.error, fileTooLargeErrorIQ.getType()); + assertEquals(IQ.Type.error, fileTooLargeErrorIQ.getType()); FileTooLargeError fileTooLargeError = FileTooLargeError.from(fileTooLargeErrorIQ); - Assert.assertEquals(20000, fileTooLargeError.getMaxFileSize()); + assertEquals(20000, fileTooLargeError.getMaxFileSize()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java index 0cd8bc305..9ef246d1b 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProviderTest.java @@ -17,7 +17,7 @@ package org.jivesoftware.smackx.httpfileupload.provider; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.net.MalformedURLException; import java.net.URL; @@ -28,7 +28,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.httpfileupload.element.Slot; import org.jivesoftware.smackx.httpfileupload.element.Slot_V0_2; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SlotProviderTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java index 71aeb7e5b..738906053 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/FiltersTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.mam; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.Date; @@ -26,7 +26,7 @@ import org.jivesoftware.smackx.mam.MamManager.MamQueryArgs; import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.util.XmppDateTime; diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java index fb8bbf95d..f0cd5df68 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamFinProviderTest.java @@ -16,17 +16,21 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.mam.element.MamFinIQ; import org.jivesoftware.smackx.mam.provider.MamFinIQProvider; import org.jivesoftware.smackx.rsm.packet.RSMSet; -import org.junit.Assert; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MamFinProviderTest extends MamTest { @@ -39,13 +43,13 @@ public class MamFinProviderTest extends MamTest { XmlPullParser parser = PacketParserUtils.getParserFor(exmapleMamFinXml); MamFinIQ mamFinIQ = new MamFinIQProvider().parse(parser); - Assert.assertFalse(mamFinIQ.isComplete()); - Assert.assertTrue(mamFinIQ.isStable()); - Assert.assertNull(mamFinIQ.getQueryId()); + assertFalse(mamFinIQ.isComplete()); + assertTrue(mamFinIQ.isStable()); + assertNull(mamFinIQ.getQueryId()); RSMSet rsmSet = mamFinIQ.getRSMSet(); - Assert.assertEquals(rsmSet.getAfter(), "09af3-cc343-b409f"); - Assert.assertEquals(rsmSet.getMax(), 10); + assertEquals(rsmSet.getAfter(), "09af3-cc343-b409f"); + assertEquals(rsmSet.getMax(), 10); } @Test @@ -64,13 +68,13 @@ public class MamFinProviderTest extends MamTest { IQ iq = PacketParserUtils.parseStanza(IQ_LIMITED_RESULTS_EXAMPLE); MamFinIQ mamFinIQ = (MamFinIQ) iq; - Assert.assertEquals(mamFinIQ.getType(), Type.result); + assertEquals(mamFinIQ.getType(), Type.result); - Assert.assertTrue(mamFinIQ.isComplete()); - Assert.assertEquals(mamFinIQ.getRSMSet().getCount(), 16); - Assert.assertEquals(mamFinIQ.getRSMSet().getFirst(), "23452-4534-1"); - Assert.assertEquals(mamFinIQ.getRSMSet().getFirstIndex(), 0); - Assert.assertEquals(mamFinIQ.getRSMSet().getLast(), "390-2342-22"); + assertTrue(mamFinIQ.isComplete()); + assertEquals(mamFinIQ.getRSMSet().getCount(), 16); + assertEquals(mamFinIQ.getRSMSet().getFirst(), "23452-4534-1"); + assertEquals(mamFinIQ.getRSMSet().getFirstIndex(), 0); + assertEquals(mamFinIQ.getRSMSet().getLast(), "390-2342-22"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java index 0e89b9b69..1c0ff85f8 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamPrefIQProviderTest.java @@ -16,18 +16,20 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.provider.MamPrefsIQProvider; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; public class MamPrefIQProviderTest extends MamTest { @@ -52,20 +54,20 @@ public class MamPrefIQProviderTest extends MamTest { XmlPullParser parser1 = PacketParserUtils.getParserFor(exampleMamPrefsIQ1); MamPrefsIQ mamPrefIQ1 = new MamPrefsIQProvider().parse(parser1); - Assert.assertEquals(IQ.Type.set, mamPrefIQ1.getType()); - Assert.assertEquals(mamPrefIQ1.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(mamPrefIQ1.getNeverJids().get(0).toString(), "montague@montague.lit"); + assertEquals(IQ.Type.set, mamPrefIQ1.getType()); + assertEquals(mamPrefIQ1.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); + assertEquals(mamPrefIQ1.getNeverJids().get(0).toString(), "montague@montague.lit"); XmlPullParser parser2 = PacketParserUtils.getParserFor(exampleMamPrefsIQ2); MamPrefsIQ mamPrefIQ2 = new MamPrefsIQProvider().parse(parser2); - Assert.assertEquals(IQ.Type.set, mamPrefIQ2.getType()); - Assert.assertEquals(mamPrefIQ2.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(mamPrefIQ2.getAlwaysJids().get(1).toString(), "montague@montague.lit"); - Assert.assertTrue(mamPrefIQ2.getNeverJids().isEmpty()); + assertEquals(IQ.Type.set, mamPrefIQ2.getType()); + assertEquals(mamPrefIQ2.getAlwaysJids().get(0).toString(), "romeo@montague.lit"); + assertEquals(mamPrefIQ2.getAlwaysJids().get(1).toString(), "montague@montague.lit"); + assertTrue(mamPrefIQ2.getNeverJids().isEmpty()); XmlPullParser parser3 = PacketParserUtils.getParserFor(exampleMamPrefsIQ3); MamPrefsIQ mamPrefIQ3 = new MamPrefsIQProvider().parse(parser3); - Assert.assertEquals(IQ.Type.set, mamPrefIQ3.getType()); + assertEquals(IQ.Type.set, mamPrefIQ3.getType()); } @Test @@ -77,10 +79,10 @@ public class MamPrefIQProviderTest extends MamTest { List alwaysJids = mamPrefsIQ.getAlwaysJids(); List neverJids = mamPrefsIQ.getNeverJids(); - Assert.assertEquals(alwaysJids.size(), 1); - Assert.assertEquals(neverJids.size(), 2); - Assert.assertEquals(alwaysJids.get(0).toString(), "romeo@montague.lit"); - Assert.assertEquals(neverJids.get(1).toString(), "montague@montague.lit"); + assertEquals(alwaysJids.size(), 1); + assertEquals(neverJids.size(), 2); + assertEquals(alwaysJids.get(0).toString(), "romeo@montague.lit"); + assertEquals(neverJids.get(1).toString(), "montague@montague.lit"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java index e1d70b581..f39411a00 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamQueryIQProviderTest.java @@ -16,6 +16,10 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.util.ArrayList; import java.util.List; @@ -27,8 +31,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MamQueryIQProviderTest { @@ -54,35 +57,35 @@ public class MamQueryIQProviderTest { IQ iq1 = PacketParserUtils.parseStanza(exampleMamQueryIQ1); MamQueryIQ mamQueryIQ1 = (MamQueryIQ) iq1; - Assert.assertEquals(mamQueryIQ1.getType(), Type.set); - Assert.assertEquals(mamQueryIQ1.getQueryId(), "test"); + assertEquals(mamQueryIQ1.getType(), Type.set); + assertEquals(mamQueryIQ1.getQueryId(), "test"); DataForm dataForm1 = (DataForm) mamQueryIQ1.getExtension(DataForm.NAMESPACE); - Assert.assertEquals(dataForm1.getType(), DataForm.Type.submit); + assertEquals(dataForm1.getType(), DataForm.Type.submit); List fields1 = dataForm1.getFields(); - Assert.assertEquals(fields1.get(0).getType(), FormField.Type.hidden); - Assert.assertEquals(fields1.get(1).getType(), FormField.Type.text_single); - Assert.assertEquals(fields1.get(1).getValues().get(0).toString(), "Where arth thou, my Juliet?"); - Assert.assertEquals(fields1.get(2).getValues().get(0).toString(), "{http://jabber.org/protocol/mood}mood/lonely"); + assertEquals(fields1.get(0).getType(), FormField.Type.hidden); + assertEquals(fields1.get(1).getType(), FormField.Type.text_single); + assertEquals(fields1.get(1).getValues().get(0).toString(), "Where arth thou, my Juliet?"); + assertEquals(fields1.get(2).getValues().get(0).toString(), "{http://jabber.org/protocol/mood}mood/lonely"); // example2 IQ iq2 = PacketParserUtils.parseStanza(exampleMamQueryIQ2); MamQueryIQ mamQueryIQ2 = (MamQueryIQ) iq2; - Assert.assertEquals(mamQueryIQ2.getType(), Type.result); - Assert.assertNull(mamQueryIQ2.getQueryId()); + assertEquals(mamQueryIQ2.getType(), Type.result); + assertNull(mamQueryIQ2.getQueryId()); DataForm dataForm2 = (DataForm) mamQueryIQ2.getExtension(DataForm.NAMESPACE); - Assert.assertEquals(dataForm2.getType(), DataForm.Type.form); + assertEquals(dataForm2.getType(), DataForm.Type.form); List fields2 = dataForm2.getFields(); - Assert.assertEquals(fields2.get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); - Assert.assertTrue(fields2.get(0).getValues().size() == 1); - Assert.assertEquals(fields2.get(1).getType(), FormField.Type.jid_single); - Assert.assertEquals(fields2.get(2).getType(), FormField.Type.text_single); - Assert.assertEquals(fields2.get(2).getValues(), new ArrayList<>()); - Assert.assertEquals(fields2.get(4).getVariable(), "urn:example:xmpp:free-text-search"); + assertEquals(fields2.get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); + assertTrue(fields2.get(0).getValues().size() == 1); + assertEquals(fields2.get(1).getType(), FormField.Type.jid_single); + assertEquals(fields2.get(2).getType(), FormField.Type.text_single); + assertEquals(fields2.get(2).getValues(), new ArrayList<>()); + assertEquals(fields2.get(4).getVariable(), "urn:example:xmpp:free-text-search"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java index 2ab6526e8..7fbcd7c7e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamResultProviderTest.java @@ -16,20 +16,21 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.forward.packet.Forwarded; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.provider.MamResultProvider; -import org.junit.Assert; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MamResultProviderTest { @@ -51,20 +52,20 @@ public class MamResultProviderTest { XmlPullParser parser = PacketParserUtils.getParserFor(exampleMamResultXml); MamResultExtension mamResultExtension = new MamResultProvider().parse(parser); - Assert.assertEquals(mamResultExtension.getQueryId(), "f27"); - Assert.assertEquals(mamResultExtension.getId(), "28482-98726-73623"); + assertEquals(mamResultExtension.getQueryId(), "f27"); + assertEquals(mamResultExtension.getId(), "28482-98726-73623"); GregorianCalendar calendar = new GregorianCalendar(2010, 7 - 1, 10, 23, 8, 25); calendar.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = calendar.getTime(); Forwarded forwarded = mamResultExtension.getForwarded(); - Assert.assertEquals(forwarded.getDelayInformation().getStamp(), date); + assertEquals(forwarded.getDelayInformation().getStamp(), date); Message message = (Message) forwarded.getForwardedStanza(); - Assert.assertEquals(message.getFrom().toString(), "romeo@montague.lit/orchard"); - Assert.assertEquals(message.getTo().toString(), "juliet@capulet.lit/balcony"); - Assert.assertEquals(message.getBody(), + assertEquals(message.getFrom().toString(), "romeo@montague.lit/orchard"); + assertEquals(message.getTo().toString(), "juliet@capulet.lit/balcony"); + assertEquals(message.getBody(), "Call me but love, and I'll be new baptized; Henceforth I never will be Romeo."); } @@ -73,20 +74,20 @@ public class MamResultProviderTest { Message message = PacketParserUtils.parseStanza(exampleResultMessage); MamResultExtension mamResultExtension = MamResultExtension.from(message); - Assert.assertEquals(mamResultExtension.getQueryId(), "f27"); - Assert.assertEquals(mamResultExtension.getId(), "28482-98726-73623"); + assertEquals(mamResultExtension.getQueryId(), "f27"); + assertEquals(mamResultExtension.getId(), "28482-98726-73623"); GregorianCalendar calendar = new GregorianCalendar(2010, 7 - 1, 10, 23, 8, 25); calendar.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = calendar.getTime(); Forwarded forwarded = mamResultExtension.getForwarded(); - Assert.assertEquals(forwarded.getDelayInformation().getStamp(), date); + assertEquals(forwarded.getDelayInformation().getStamp(), date); Message forwardedMessage = (Message) forwarded.getForwardedStanza(); - Assert.assertEquals(forwardedMessage.getFrom().toString(), "witch@shakespeare.lit"); - Assert.assertEquals(forwardedMessage.getTo().toString(), "macbeth@shakespeare.lit"); - Assert.assertEquals(forwardedMessage.getBody(), "Hail to thee"); + assertEquals(forwardedMessage.getFrom().toString(), "witch@shakespeare.lit"); + assertEquals(forwardedMessage.getTo().toString(), "macbeth@shakespeare.lit"); + assertEquals(forwardedMessage.getBody(), "Hail to thee"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java index 494654a91..9c79c34e3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java @@ -25,16 +25,16 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Before; +import org.junit.jupiter.api.BeforeAll; public class MamTest extends InitExtensions { - protected XMPPConnection connection; - protected String queryId; - protected MamManager mamManager; + protected static XMPPConnection connection; + protected static String queryId; + protected static MamManager mamManager; - @Before - public void setup() { + @BeforeAll + public static void setup() { // mock connection connection = new DummyConnection(); diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java index 635dcecb2..91487e62a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PagingTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; @@ -23,8 +25,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.rsm.packet.RSMSet; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class PagingTest extends MamTest { @@ -44,9 +45,9 @@ public class PagingTest extends MamTest { mamQueryIQ.setType(IQ.Type.set); mamQueryIQ.addExtension(rsmSet); - Assert.assertEquals(mamQueryIQ.getDataForm(), dataForm); - Assert.assertEquals(mamQueryIQ.getDataForm().getFields().get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), pagingStanza); + assertEquals(mamQueryIQ.getDataForm(), dataForm); + assertEquals(mamQueryIQ.getDataForm().getFields().get(0).getValues().get(0).toString(), "urn:xmpp:mam:1"); + assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), pagingStanza); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java index c251492ff..2e80871bc 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/PreferencesTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.ArrayList; import java.util.List; @@ -25,8 +27,7 @@ import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamPrefsIQ; import org.jivesoftware.smackx.mam.element.MamPrefsIQ.DefaultBehavior; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -43,7 +44,7 @@ public class PreferencesTest { public void checkRetrievePrefsStanza() throws Exception { MamPrefsIQ mamPrefIQ = new MamPrefsIQ(); mamPrefIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), retrievePrefsStanzaExample); + assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), retrievePrefsStanzaExample); } @Test @@ -57,7 +58,7 @@ public class PreferencesTest { MamPrefsIQ mamPrefIQ = new MamPrefsIQ(alwaysJids, neverJids, DefaultBehavior.roster); mamPrefIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), updatePrefsStanzaExample); + assertEquals(mamPrefIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), updatePrefsStanzaExample); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java index 5af0bae2a..bcd4e00ab 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/QueryArchiveTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; @@ -32,8 +34,7 @@ import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class QueryArchiveTest extends MamTest { @@ -56,7 +57,7 @@ public class QueryArchiveTest extends MamTest { MamQueryIQ mamQueryIQ = new MamQueryIQ(queryId, dataForm); mamQueryIQ.setType(IQ.Type.set); mamQueryIQ.setStanzaId("sarasa"); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamSimpleQueryIQ); + assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamSimpleQueryIQ); } @Test @@ -82,18 +83,18 @@ public class QueryArchiveTest extends MamTest { message.addExtension(new MamResultExtension("g27", "34482-21985-73620", forwarded)); // FIXME: The order of assertEquals is reversed, fix it by switching it. - Assert.assertEquals(message.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamQueryResultExample); + assertEquals(message.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamQueryResultExample); MamResultExtension mamResultExtension = MamResultExtension.from(message); - Assert.assertEquals(mamResultExtension.getId(), "34482-21985-73620"); - Assert.assertEquals(mamResultExtension.getForwarded().getDelayInformation().getStamp(), date); + assertEquals(mamResultExtension.getId(), "34482-21985-73620"); + assertEquals(mamResultExtension.getForwarded().getDelayInformation().getStamp(), date); Message resultMessage = (Message) mamResultExtension.getForwarded().getForwardedStanza(); - Assert.assertEquals(resultMessage.getFrom(), JidCreate.from("coven@chat.shakespeare.lit/firstwitch")); - Assert.assertEquals(resultMessage.getStanzaId(), "162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2"); - Assert.assertEquals(resultMessage.getType(), Type.chat); - Assert.assertEquals(resultMessage.getBody(), "Thrice the brinded cat hath mew."); + assertEquals(resultMessage.getFrom(), JidCreate.from("coven@chat.shakespeare.lit/firstwitch")); + assertEquals(resultMessage.getStanzaId(), "162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2"); + assertEquals(resultMessage.getType(), Type.chat); + assertEquals(resultMessage.getBody(), "Thrice the brinded cat hath mew."); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java index 162d06564..9adebb3d5 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/ResultsLimitTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016 Fernando Ramirez, 2018 Florian Schmaus + * Copyright 2016 Fernando Ramirez, 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.mam; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; @@ -24,8 +26,7 @@ import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ResultsLimitTest extends MamTest { @@ -36,7 +37,6 @@ public class ResultsLimitTest extends MamTest { @Test public void checkResultsLimit() throws Exception { - DataForm dataForm = getNewMamForm(); MamQueryIQ mamQueryIQ = new MamQueryIQ(queryId, dataForm); mamQueryIQ.setType(IQ.Type.set); @@ -44,7 +44,7 @@ public class ResultsLimitTest extends MamTest { MamQueryArgs mamQueryArgs = MamQueryArgs.builder().setResultPageSize(10).build(); mamQueryArgs.maybeAddRsmSet(mamQueryIQ); - Assert.assertEquals(mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), resultsLimitStanza); + assertEquals(resultsLimitStanza, mamQueryIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java index dad68bc0f..ca6859eee 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/RetrieveFormFieldsTest.java @@ -17,7 +17,7 @@ package org.jivesoftware.smackx.mam; import static org.jivesoftware.smack.test.util.XmlUnitUtils.assertXmlSimilar; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.jivesoftware.smack.packet.StreamOpen; @@ -27,7 +27,7 @@ import org.jivesoftware.smackx.mam.element.MamQueryIQ; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RetrieveFormFieldsTest extends MamTest { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java index 7afcdc6e7..9a7ee1189 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/message_markup/MessageMarkupTest.java @@ -18,11 +18,14 @@ package org.jivesoftware.smackx.message_markup; import static junit.framework.TestCase.assertEquals; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.List; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.message_markup.element.BlockQuoteElement; import org.jivesoftware.smackx.message_markup.element.CodeBlockElement; import org.jivesoftware.smackx.message_markup.element.ListElement; @@ -30,8 +33,7 @@ import org.jivesoftware.smackx.message_markup.element.MarkupElement; import org.jivesoftware.smackx.message_markup.element.SpanElement; import org.jivesoftware.smackx.message_markup.provider.MarkupElementProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class MessageMarkupTest extends SmackTestSuite { @@ -107,16 +109,18 @@ public class MessageMarkupTest extends SmackTestSuite { assertEquals(SpanElement.SpanStyle.deleted, spanElement.getStyles().iterator().next()); } - @Test(expected = IllegalArgumentException.class) + @Test public void wrongStartEndTest() { - MarkupElement.getBuilder().setEmphasis(12, 10); + assertThrows(IllegalArgumentException.class, () -> + MarkupElement.getBuilder().setEmphasis(12, 10)); } - @Test(expected = IllegalArgumentException.class) + @Test public void overlappingSpansTest() { MarkupElement.Builder m = MarkupElement.getBuilder(); m.setEmphasis(0, 10); - m.setDeleted(5, 15); + assertThrows(IllegalArgumentException.class, () -> + m.setDeleted(5, 15)); } @Test @@ -172,10 +176,11 @@ public class MessageMarkupTest extends SmackTestSuite { assertEquals(47, list.getEntries().get(1).getStart()); } - @Test(expected = IllegalArgumentException.class) + @Test public void listWrongSecondEntryTest() { MarkupElement.Builder m = MarkupElement.getBuilder(); - m.beginList().addEntry(0,1).addEntry(3,4); + assertThrows(IllegalArgumentException.class, () -> + m.beginList().addEntry(0,1).addEntry(3,4)); } @Test diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java index a95e244ae..a07577748 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightAffiliationsChangeExtensionTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.Message; @@ -23,8 +25,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightElements.AffiliationsChangeExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -55,10 +56,10 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 3); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(affiliations.size(), 3); + assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); } @Test @@ -68,11 +69,11 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 2); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(affiliations.size(), 2); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); - Assert.assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); + assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); } @Test @@ -83,12 +84,12 @@ public class MUCLightAffiliationsChangeExtensionTest { .from(changeAffiliationsMessage); HashMap affiliations = affiliationsChangeExtension.getAffiliations(); - Assert.assertEquals(affiliations.size(), 2); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(affiliations.size(), 2); + assertEquals(affiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(affiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(affiliationsChangeExtension.getPrevVersion(), "njiokm"); - Assert.assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); + assertEquals(affiliationsChangeExtension.getPrevVersion(), "njiokm"); + assertEquals(affiliationsChangeExtension.getVersion(), "qwerty"); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java index 1da29f0ca..d6d899a31 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightBlockingTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightBlockingIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -62,7 +63,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setStanzaId("getblock1"); mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); - Assert.assertEquals(getBlockingListIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getBlockingListIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -70,12 +71,12 @@ public class MUCLightBlockingTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getBlockingListIQResponse); MUCLightBlockingIQ mucLightBlockingIQ = (MUCLightBlockingIQ) iqInfoResult; - Assert.assertEquals(2, mucLightBlockingIQ.getRooms().size()); - Assert.assertEquals(1, mucLightBlockingIQ.getUsers().size()); - Assert.assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("coven@muclight.shakespeare.lit"))); - Assert.assertEquals(false, + assertEquals(2, mucLightBlockingIQ.getRooms().size()); + assertEquals(1, mucLightBlockingIQ.getUsers().size()); + assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("coven@muclight.shakespeare.lit"))); + assertEquals(false, mucLightBlockingIQ.getRooms().get(JidCreate.from("sarasa@muclight.shakespeare.lit"))); - Assert.assertEquals(false, mucLightBlockingIQ.getUsers().get(JidCreate.from("hag77@shakespeare.lit"))); + assertEquals(false, mucLightBlockingIQ.getUsers().get(JidCreate.from("hag77@shakespeare.lit"))); } @Test @@ -89,7 +90,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("block1"); - Assert.assertEquals(blockingRoomsIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(blockingRoomsIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -103,7 +104,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("block2"); - Assert.assertEquals(blockingUsersIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(blockingUsersIQExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -119,7 +120,7 @@ public class MUCLightBlockingTest { mucLightBlockingIQ.setTo(JidCreate.from("muclight.shakespeare.lit")); mucLightBlockingIQ.setStanzaId("unblock1"); - Assert.assertEquals(unblockingUsersAndRoomsExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(unblockingUsersAndRoomsExample, mucLightBlockingIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java index 44a9e067d..5d4351d0c 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightChangeAffiliationsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smackx.muclight.element.MUCLightChangeAffiliationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -46,13 +47,13 @@ public class MUCLightChangeAffiliationsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), affiliations); mucLightChangeAffiliationsIQ.setStanzaId("member1"); - Assert.assertEquals(mucLightChangeAffiliationsIQ.getTo(), "coven@muclight.shakespeare.lit"); - Assert.assertEquals(mucLightChangeAffiliationsIQ.getType(), IQ.Type.set); + assertEquals(mucLightChangeAffiliationsIQ.getTo(), "coven@muclight.shakespeare.lit"); + assertEquals(mucLightChangeAffiliationsIQ.getType(), IQ.Type.set); HashMap iqAffiliations = mucLightChangeAffiliationsIQ.getAffiliations(); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); - Assert.assertEquals(iqAffiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa1@shakespeare.lit")), MUCLightAffiliation.member); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa2@shakespeare.lit")), MUCLightAffiliation.owner); + assertEquals(iqAffiliations.get(JidCreate.from("sarasa3@shakespeare.lit")), MUCLightAffiliation.none); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java index f03152bd1..90ba7aa3e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightConfigurationsChangeExtensionTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightElements.ConfigurationsChangeExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MUCLightConfigurationsChangeExtensionTest { @@ -46,12 +48,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("asdfghj000", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("asdfghj", configurationsChangeExtension.getVersion()); - Assert.assertEquals("To be or not to be?", configurationsChangeExtension.getSubject()); - Assert.assertNull(configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getCustomConfigs()); - Assert.assertEquals(messageWithSubjectChangeExample, configurationsMessage.toXML().toString()); + assertEquals("asdfghj000", configurationsChangeExtension.getPrevVersion()); + assertEquals("asdfghj", configurationsChangeExtension.getVersion()); + assertEquals("To be or not to be?", configurationsChangeExtension.getSubject()); + assertNull(configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getCustomConfigs()); + assertEquals(messageWithSubjectChangeExample, configurationsMessage.toXML().toString()); } @Test @@ -60,12 +62,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); - Assert.assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getSubject()); - Assert.assertNull(configurationsChangeExtension.getCustomConfigs()); - Assert.assertEquals(messageWithRoomNameChangeExample, configurationsMessage.toXML().toString()); + assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); + assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); + assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getSubject()); + assertNull(configurationsChangeExtension.getCustomConfigs()); + assertEquals(messageWithRoomNameChangeExample, configurationsMessage.toXML().toString()); } @Test @@ -74,12 +76,12 @@ public class MUCLightConfigurationsChangeExtensionTest { ConfigurationsChangeExtension configurationsChangeExtension = ConfigurationsChangeExtension .from(configurationsMessage); - Assert.assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); - Assert.assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); - Assert.assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); - Assert.assertNull(configurationsChangeExtension.getSubject()); - Assert.assertEquals("blue", configurationsChangeExtension.getCustomConfigs().get("color")); - Assert.assertEquals(messageWithConfigsChangeExample, configurationsMessage.toXML().toString()); + assertEquals("zaqwsx", configurationsChangeExtension.getPrevVersion()); + assertEquals("zxcvbnm", configurationsChangeExtension.getVersion()); + assertEquals("A Darker Cave", configurationsChangeExtension.getRoomName()); + assertNull(configurationsChangeExtension.getSubject()); + assertEquals("blue", configurationsChangeExtension.getCustomConfigs().get("color")); + assertEquals(messageWithConfigsChangeExample, configurationsMessage.toXML().toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java index 036d3ad7c..971663f9e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightCreateIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.jivesoftware.smackx.muclight.element.MUCLightCreateIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -45,11 +46,11 @@ public class MUCLightCreateIQTest { "test", occupants); mucLightCreateIQ.setStanzaId("1c72W-50"); - Assert.assertEquals(mucLightCreateIQ.getConfiguration().getRoomName(), "test"); + assertEquals(mucLightCreateIQ.getConfiguration().getRoomName(), "test"); HashMap iqOccupants = mucLightCreateIQ.getOccupants(); - Assert.assertEquals(iqOccupants.get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); - Assert.assertEquals(iqOccupants.get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); + assertEquals(iqOccupants.get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); + assertEquals(iqOccupants.get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java index 737ada8ec..092bfee8a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightDestroyTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.muclight.element.MUCLightDestroyIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightDestroyTest { @@ -33,7 +34,7 @@ public class MUCLightDestroyTest { public void checkDestroyMUCLightStanza() throws Exception { MUCLightDestroyIQ mucLightDestroyIQ = new MUCLightDestroyIQ(JidCreate.from("coven@muclight.shakespeare.lit")); mucLightDestroyIQ.setStanzaId("destroy1"); - Assert.assertEquals(mucLightDestroyIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), stanza); + assertEquals(mucLightDestroyIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), stanza); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java index ef543e424..782171ae1 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetAffiliationsTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightAffiliationsIQ; import org.jivesoftware.smackx.muclight.element.MUCLightGetAffiliationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; @@ -46,7 +47,7 @@ public class MUCLightGetAffiliationsTest { MUCLightGetAffiliationsIQ mucLightGetAffiliationsIQ = new MUCLightGetAffiliationsIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetAffiliationsIQ.setStanzaId("getmembers"); - Assert.assertEquals(getAffiliationsIQExample, mucLightGetAffiliationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getAffiliationsIQExample, mucLightGetAffiliationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -54,13 +55,13 @@ public class MUCLightGetAffiliationsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getAffiliationsResponseExample); MUCLightAffiliationsIQ mucLightAffiliationsIQ = (MUCLightAffiliationsIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightAffiliationsIQ.getVersion()); + assertEquals("123456", mucLightAffiliationsIQ.getVersion()); HashMap affiliations = mucLightAffiliationsIQ.getAffiliations(); - Assert.assertEquals(3, affiliations.size()); - Assert.assertEquals(MUCLightAffiliation.owner, affiliations.get(JidCreate.from("user1@shakespeare.lit"))); - Assert.assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user2@shakespeare.lit"))); - Assert.assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user3@shakespeare.lit"))); + assertEquals(3, affiliations.size()); + assertEquals(MUCLightAffiliation.owner, affiliations.get(JidCreate.from("user1@shakespeare.lit"))); + assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user2@shakespeare.lit"))); + assertEquals(MUCLightAffiliation.member, affiliations.get(JidCreate.from("user3@shakespeare.lit"))); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java index 3b77c8da3..8c295ab0e 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightGetConfigsTest.java @@ -16,6 +16,9 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; @@ -25,8 +28,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightConfigurationIQ; import org.jivesoftware.smackx.muclight.element.MUCLightGetConfigsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightGetConfigsTest { @@ -49,7 +51,7 @@ public class MUCLightGetConfigsTest { MUCLightGetConfigsIQ mucLightGetConfigsIQ = new MUCLightGetConfigsIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetConfigsIQ.setStanzaId("config0"); - Assert.assertEquals(getConfigsIQExample, mucLightGetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(getConfigsIQExample, mucLightGetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -57,10 +59,10 @@ public class MUCLightGetConfigsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getConfigsResponseExample); MUCLightConfigurationIQ mucLightConfigurationIQ = (MUCLightConfigurationIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightConfigurationIQ.getVersion()); - Assert.assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); - Assert.assertEquals("A subject", mucLightConfigurationIQ.getConfiguration().getSubject()); - Assert.assertNull(mucLightConfigurationIQ.getConfiguration().getCustomConfigs()); + assertEquals("123456", mucLightConfigurationIQ.getVersion()); + assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); + assertEquals("A subject", mucLightConfigurationIQ.getConfiguration().getSubject()); + assertNull(mucLightConfigurationIQ.getConfiguration().getCustomConfigs()); } @Test @@ -68,13 +70,13 @@ public class MUCLightGetConfigsTest { IQ iqInfoResult = PacketParserUtils.parseStanza(getConfigsResponseExampleWithCustomConfigs); MUCLightConfigurationIQ mucLightConfigurationIQ = (MUCLightConfigurationIQ) iqInfoResult; - Assert.assertEquals("123456", mucLightConfigurationIQ.getVersion()); - Assert.assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); - Assert.assertNull(mucLightConfigurationIQ.getConfiguration().getSubject()); + assertEquals("123456", mucLightConfigurationIQ.getVersion()); + assertEquals("A Dark Cave", mucLightConfigurationIQ.getConfiguration().getRoomName()); + assertNull(mucLightConfigurationIQ.getConfiguration().getSubject()); HashMap customConfigs = mucLightConfigurationIQ.getConfiguration().getCustomConfigs(); - Assert.assertEquals("blue", customConfigs.get("color")); - Assert.assertEquals("20", customConfigs.get("size")); + assertEquals("blue", customConfigs.get("color")); + assertEquals("20", customConfigs.get("size")); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java index adc6d4701..0f8581b38 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightInfoTest.java @@ -16,6 +16,8 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smack.util.PacketParserUtils; @@ -23,8 +25,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.muclight.element.MUCLightGetInfoIQ; import org.jivesoftware.smackx.muclight.element.MUCLightInfoIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightInfoTest { @@ -46,7 +47,7 @@ public class MUCLightInfoTest { MUCLightGetInfoIQ mucLightGetInfoIQWithVersion = new MUCLightGetInfoIQ( JidCreate.from("coven@muclight.shakespeare.lit"), "abcdefg"); mucLightGetInfoIQWithVersion.setStanzaId("getinfo1"); - Assert.assertEquals(mucLightGetInfoIQWithVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithVersion); + assertEquals(mucLightGetInfoIQWithVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithVersion); } @Test @@ -54,21 +55,21 @@ public class MUCLightInfoTest { MUCLightGetInfoIQ mucLightGetInfoIQWithoutVersion = new MUCLightGetInfoIQ( JidCreate.from("coven@muclight.shakespeare.lit"), null); mucLightGetInfoIQWithoutVersion.setStanzaId("getinfo1"); - Assert.assertEquals(mucLightGetInfoIQWithoutVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithoutVersion); + assertEquals(mucLightGetInfoIQWithoutVersion.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), exampleWithoutVersion); } @Test public void checkMUCLightInfoResult() throws Exception { IQ iqInfoResult = PacketParserUtils.parseStanza(exampleInfoResult); MUCLightInfoIQ mucLightInfoResponseIQ = (MUCLightInfoIQ) iqInfoResult; - Assert.assertEquals(mucLightInfoResponseIQ.getVersion(), "123456"); - Assert.assertEquals(mucLightInfoResponseIQ.getConfiguration().getRoomName(), "test"); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().size(), 3); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("john@test.com")), + assertEquals(mucLightInfoResponseIQ.getVersion(), "123456"); + assertEquals(mucLightInfoResponseIQ.getConfiguration().getRoomName(), "test"); + assertEquals(mucLightInfoResponseIQ.getOccupants().size(), 3); + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("john@test.com")), MUCLightAffiliation.owner); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("charlie@test.com")), + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("charlie@test.com")), MUCLightAffiliation.member); - Assert.assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("pep@test.com")), + assertEquals(mucLightInfoResponseIQ.getOccupants().get(JidCreate.from("pep@test.com")), MUCLightAffiliation.member); } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java index 41828c29b..4ca2a0586 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/muclight/MUCLightSetConfigsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.muclight; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.muclight.element.MUCLightSetConfigsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class MUCLightSetConfigsIQTest { @@ -49,7 +50,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), "A Darker Cave", customConfigs); mucLightSetConfigsIQ.setStanzaId("conf1"); - Assert.assertEquals(setConfigsIQExample, mucLightSetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(setConfigsIQExample, mucLightSetConfigsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -58,7 +59,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), "A Darker Cave", null); mucLightChangeRoomNameIQ.setStanzaId("roomName1"); - Assert.assertEquals(changeRoomNameIQExample, mucLightChangeRoomNameIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(changeRoomNameIQExample, mucLightChangeRoomNameIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -67,7 +68,7 @@ public class MUCLightSetConfigsIQTest { JidCreate.from("coven@muclight.shakespeare.lit"), null, "To be or not to be?", null); mucLightChangeSubjectIQ.setStanzaId("subject1"); - Assert.assertEquals(changeSubjectIQExample, mucLightChangeSubjectIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(changeSubjectIQExample, mucLightChangeSubjectIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java index ddd9f8b61..984babcde 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/DisablePushNotificationsIQTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.push_notifications.element.DisablePushNotificationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class DisablePushNotificationsIQTest { @@ -38,7 +39,7 @@ public class DisablePushNotificationsIQTest { DisablePushNotificationsIQ disablePushNotificationsIQ = new DisablePushNotificationsIQ( JidCreate.from("push-5.client.example")); disablePushNotificationsIQ.setStanzaId("x97"); - Assert.assertEquals(disableAllNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(disableAllNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -46,7 +47,7 @@ public class DisablePushNotificationsIQTest { DisablePushNotificationsIQ disablePushNotificationsIQ = new DisablePushNotificationsIQ( JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo"); disablePushNotificationsIQ.setStanzaId("x97"); - Assert.assertEquals(disableNodeNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(disableNodeNotificationsIQExample, disablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java index 3fe872ab5..d4d771fc3 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/EnablePushNotificationsIQTest.java @@ -16,14 +16,15 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.util.HashMap; import org.jivesoftware.smack.packet.StreamOpen; import org.jivesoftware.smackx.push_notifications.element.EnablePushNotificationsIQ; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class EnablePushNotificationsIQTest { @@ -43,7 +44,7 @@ public class EnablePushNotificationsIQTest { EnablePushNotificationsIQ enablePushNotificationsIQ = new EnablePushNotificationsIQ( JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo"); enablePushNotificationsIQ.setStanzaId("x42"); - Assert.assertEquals(exampleEnableIQ, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(exampleEnableIQ, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } @Test @@ -55,7 +56,7 @@ public class EnablePushNotificationsIQTest { JidCreate.from("push-5.client.example"), "yxs32uqsflafdk3iuqo", publishOptions); enablePushNotificationsIQ.setStanzaId("x42"); - Assert.assertEquals(exampleEnableIQWithPublishOptions, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); + assertEquals(exampleEnableIQWithPublishOptions, enablePushNotificationsIQ.toXML(StreamOpen.CLIENT_NAMESPACE).toString()); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java index 96d3ee64d..7589eb0fe 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/push_notifications/RemoteDisablingPushNotificationsTest.java @@ -16,13 +16,15 @@ */ package org.jivesoftware.smackx.push_notifications; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.push_notifications.element.PushNotificationsElements.RemoteDisablingExtension; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; public class RemoteDisablingPushNotificationsTest { @@ -47,23 +49,23 @@ public class RemoteDisablingPushNotificationsTest { Message message = PacketParserUtils.parseStanza(remoteDisablingExample); RemoteDisablingExtension remoteDisablingExtension = RemoteDisablingExtension.from(message); - Assert.assertEquals("yxs32uqsflafdk3iuqo", remoteDisablingExtension.getNode()); - Assert.assertEquals(JidCreate.from("user@example.com"), remoteDisablingExtension.getUserJid()); + assertEquals("yxs32uqsflafdk3iuqo", remoteDisablingExtension.getNode()); + assertEquals(JidCreate.from("user@example.com"), remoteDisablingExtension.getUserJid()); } @Test public void checkWrongRemoteDisablighPushNotifications() throws Exception { Message message1 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension1 = RemoteDisablingExtension.from(message1); - Assert.assertNull(remoteDisablingExtension1); + assertNull(remoteDisablingExtension1); Message message2 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension2 = RemoteDisablingExtension.from(message2); - Assert.assertNull(remoteDisablingExtension2); + assertNull(remoteDisablingExtension2); Message message3 = PacketParserUtils.parseStanza(wrongRemoteDisabling1); RemoteDisablingExtension remoteDisablingExtension3 = RemoteDisablingExtension.from(message3); - Assert.assertNull(remoteDisablingExtension3); + assertNull(remoteDisablingExtension3); } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java index 1e1eb6158..af67ce062 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/reference/ReferenceTest.java @@ -19,16 +19,18 @@ package org.jivesoftware.smackx.reference; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.net.URI; import java.net.URISyntaxException; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.reference.element.ReferenceElement; import org.jivesoftware.smackx.reference.provider.ReferenceProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ReferenceTest extends SmackTestSuite { @@ -76,24 +78,28 @@ public class ReferenceTest extends SmackTestSuite { assertXMLEqual(xml, parsed.toXML().toString()); } - @Test(expected = IllegalArgumentException.class) + @Test public void beginGreaterEndIllegalTest() throws URISyntaxException { - new ReferenceElement(100, 10, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(100, 10, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void beginSmallerZeroTest() throws URISyntaxException { - new ReferenceElement(-1, 12, ReferenceElement.Type.data, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(-1, 12, ReferenceElement.Type.data, null, new URI("xmpp:test@test.test"))); } - @Test(expected = IllegalArgumentException.class) + @Test public void endSmallerZeroTest() throws URISyntaxException { - new ReferenceElement(12, -2, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test")); + assertThrows(IllegalArgumentException.class, () -> + new ReferenceElement(12, -2, ReferenceElement.Type.mention, null, new URI("xmpp:test@test.test"))); } - @Test(expected = NullPointerException.class) + @Test public void typeArgumentNullTest() throws URISyntaxException { - new ReferenceElement(1, 2, null, null, new URI("xmpp:test@test.test")); + assertThrows(NullPointerException.class, () -> + new ReferenceElement(1, 2, null, null, new URI("xmpp:test@test.test"))); } /* diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java index 5e65ba408..4a3538343 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/sid/StableUniqueStanzaIdTest.java @@ -26,12 +26,13 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; + import org.jivesoftware.smackx.sid.element.OriginIdElement; import org.jivesoftware.smackx.sid.element.StanzaIdElement; import org.jivesoftware.smackx.sid.provider.OriginIdProvider; import org.jivesoftware.smackx.sid.provider.StanzaIdProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StableUniqueStanzaIdTest extends SmackTestSuite { diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java index d20ad6082..550650975 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java @@ -20,17 +20,19 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Map; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.spoiler.element.SpoilerElement; import org.jivesoftware.smackx.spoiler.provider.SpoilerProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class SpoilerTest extends SmackTestSuite { @@ -114,15 +116,15 @@ public class SpoilerTest extends SmackTestSuite { assertEquals(spoilerText, spoilers.get("de")); } - @Test(expected = IllegalArgumentException.class) + @Test public void spoilerCheckArgumentsNullTest() { - @SuppressWarnings("unused") - SpoilerElement spoilerElement = new SpoilerElement("de", null); + assertThrows(IllegalArgumentException.class, () -> + new SpoilerElement("de", null)); } - @Test(expected = IllegalArgumentException.class) + @Test public void spoilerCheckArgumentsEmptyTest() { - @SuppressWarnings("unused") - SpoilerElement spoilerElement = new SpoilerElement("de", ""); + assertThrows(IllegalArgumentException.class, () -> + new SpoilerElement("de", "")); } } diff --git a/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java b/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java index 795dad80d..719eaf709 100644 --- a/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java +++ b/smack-extensions/src/integration-test/java/org/jivesoftware/smackx/pubsub/CarExtensionProvider.java @@ -18,7 +18,7 @@ package org.jivesoftware.smackx.pubsub; import org.jivesoftware.smack.packet.PacketExtension; import org.jivesoftware.smack.provider.PacketExtensionProvider; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; /** * @@ -35,7 +35,7 @@ public class CarExtensionProvider extends PacketExtensionProvider for (int i=0; i<2; i++) { - while (parser.next() != XmlPullParser.START_TAG); + while (parser.next() != START_ELEMENT); if (parser.getName().equals("paint")) { @@ -46,7 +46,7 @@ public class CarExtensionProvider extends PacketExtensionProvider numTires = Integer.parseInt(parser.getAttributeValue(0)); } } - while (parser.next() != XmlPullParser.END_TAG); + while (parser.next() != END_ELEMENT); return new CarExtension(color, numTires); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java index 92a569856..1b58e45b1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java @@ -22,13 +22,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.address.packet.MultipleAddresses; import org.jivesoftware.smackx.address.packet.MultipleAddresses.Type; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The MultipleAddressesProvider parses {@link MultipleAddresses} packets. @@ -43,9 +43,9 @@ public class MultipleAddressesProvider extends ExtensionElementProvider { private static final Logger LOGGER = Logger.getLogger(AMPExtensionProvider.class.getName()); @@ -67,8 +66,8 @@ public class AMPExtensionProvider extends ExtensionElementProvider boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals(AMPExtension.Rule.ELEMENT)) { String actionString = parser.getAttributeValue(null, AMPExtension.Action.ATTRIBUTE_NAME); String conditionName = parser.getAttributeValue(null, AMPExtension.Condition.ATTRIBUTE_NAME); @@ -91,7 +90,7 @@ public class AMPExtensionProvider extends ExtensionElementProvider ampExtension.addRule(rule); } } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(AMPExtension.ELEMENT)) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java index 9afb75d30..cdc47d2cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/AttentionExtension.java @@ -19,8 +19,7 @@ package org.jivesoftware.smackx.attention.packet; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; /** * A PacketExtension that implements XEP-0224: Attention diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java index dcfa17d31..9f8b68a3a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockContactsIQProvider.java @@ -23,12 +23,12 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; 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.blocking.element.BlockContactsIQ; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Block contact IQ provider class. @@ -44,23 +44,24 @@ public class BlockContactsIQProvider extends IQProvider { List jids = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { Jid jid = ParserUtils.getJidAttribute(parser); jids.add(jid); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java index 617d6f02b..1cf859609 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockListIQProvider.java @@ -24,12 +24,12 @@ import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.packet.XmlEnvironment; 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.blocking.element.BlockListIQ; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Block list IQ provider class. @@ -45,11 +45,9 @@ public class BlockListIQProvider extends IQProvider { List jids = null; outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { if (jids == null) { jids = new ArrayList<>(); @@ -59,12 +57,15 @@ public class BlockListIQProvider extends IQProvider { } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java index 6192a90bc..51e88edc4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/BlockedErrorExtensionProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.blocking.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.blocking.element.BlockedErrorExtension; -import org.xmlpull.v1.XmlPullParser; - /** * Blocked error extension class. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java index 37fac82fa..afee9f93a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/blocking/provider/UnblockContactsIQProvider.java @@ -22,13 +22,13 @@ import java.util.List; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.blocking.element.UnblockContactsIQ; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Unblock contact IQ provider class. @@ -44,11 +44,9 @@ public class UnblockContactsIQProvider extends IQProvider { List jids = null; outerloop: while (true) { - int eventType = parser.next(); - + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - - case XmlPullParser.START_TAG: + case START_ELEMENT: if (parser.getName().equals("item")) { if (jids == null) { jids = new ArrayList<>(); @@ -57,12 +55,15 @@ public class UnblockContactsIQProvider extends IQProvider { } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java index 0b79ffada..36f820256 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/provider/BoBIQProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2017 Florian Schmaus + * Copyright 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,14 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; 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.bob.BoBData; import org.jivesoftware.smackx.bob.BoBHash; import org.jivesoftware.smackx.bob.element.BoBIQ; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Bits of Binary IQ provider class. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java index f89e40f49..ddea3dfec 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/Bookmarks.java @@ -22,14 +22,14 @@ import java.util.List; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.XmlStringBuilder; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqprivate.packet.PrivateData; import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Bookmarks is used for storing and retrieving URLS and Conference rooms. @@ -224,19 +224,19 @@ public class Bookmarks implements PrivateData { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "url".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "url".equals(parser.getName())) { final BookmarkedURL urlStorage = getURLStorage(parser); if (urlStorage != null) { storage.addBookmarkedURL(urlStorage); } } - else if (eventType == XmlPullParser.START_TAG && + else if (eventType == XmlPullParser.Event.START_ELEMENT && "conference".equals(parser.getName())) { final BookmarkedConference conference = getConferenceStorage(parser); storage.addBookmarkedConference(conference); } - else if (eventType == XmlPullParser.END_TAG && "storage".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "storage".equals(parser.getName())) { done = true; } } @@ -255,12 +255,12 @@ public class Bookmarks implements PrivateData { BookmarkedURL urlStore = new BookmarkedURL(url, name, rss); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "shared_bookmark".equals(parser.getName())) { urlStore.setShared(true); } - else if (eventType == XmlPullParser.END_TAG && "url".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "url".equals(parser.getName())) { done = true; } } @@ -279,19 +279,19 @@ public class Bookmarks implements PrivateData { // Check for nickname boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "nick".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "nick".equals(parser.getName())) { String nickString = parser.nextText(); conf.setNickname(Resourcepart.from(nickString)); } - else if (eventType == XmlPullParser.START_TAG && "password".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "password".equals(parser.getName())) { conf.setPassword(parser.nextText()); } - else if (eventType == XmlPullParser.START_TAG + else if (eventType == XmlPullParser.Event.START_ELEMENT && "shared_bookmark".equals(parser.getName())) { conf.setShared(true); } - else if (eventType == XmlPullParser.END_TAG && "conference".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "conference".equals(parser.getName())) { done = true; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java index 68e36908a..f6fbf0a69 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.bytestreams.ibb.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; -import org.xmlpull.v1.XmlPullParser; - /** * Parses a close In-Band Bytestream packet. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java index f459aa671..6db9ed434 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/DataPacketProvider.java @@ -20,12 +20,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.bytestreams.ibb.packet.Data; import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an In-Band Bytestream data stanza which can be a stanza extension of * either an IQ stanza or a message stanza. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java index 77e1dc769..bcb10dbb8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProvider.java @@ -21,13 +21,12 @@ import java.util.Locale; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an In-Band Bytestream open packet. * diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java index 5ffecf1c3..1aa534dc4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5Client.java @@ -38,6 +38,7 @@ import org.jivesoftware.smack.SmackException.SmackMessageException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.StringUtils; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java index e1d236d5a..92aba36c0 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/BytestreamsProvider.java @@ -21,13 +21,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; 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.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.Mode; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Parses a bytestream packet. @@ -51,12 +51,12 @@ public class BytestreamsProvider extends IQProvider { String host = null; String port = null; - int eventType; + XmlPullParser.Event eventType; String elementName; while (!done) { eventType = parser.next(); elementName = parser.getName(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (elementName.equals(Bytestream.StreamHost.ELEMENTNAME)) { JID = ParserUtils.getJidAttribute(parser); host = parser.getAttributeValue("", "host"); @@ -69,7 +69,7 @@ public class BytestreamsProvider extends IQProvider { toReturn.setToActivate(ParserUtils.getJidAttribute(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (elementName.equals("streamhost")) { if (port == null) { toReturn.addStreamHost(JID, host); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java index 134a45d18..c00b87dd2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java @@ -20,19 +20,18 @@ 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.caps.EntityCapsManager; import org.jivesoftware.smackx.caps.packet.CapsExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class CapsExtensionProvider extends ExtensionElementProvider { @Override public CapsExtension parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String hash, version, node; - if (parser.getEventType() == XmlPullParser.START_TAG + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && parser.getName().equalsIgnoreCase(EntityCapsManager.ELEMENT)) { hash = parser.getAttributeValue(null, "hash"); version = parser.getAttributeValue(null, "ver"); @@ -44,7 +43,7 @@ public class CapsExtensionProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java index fcfb0beaa..22d7f7498 100755 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/AdHocCommandDataProvider.java @@ -25,6 +25,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; 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.commands.AdHocCommand; import org.jivesoftware.smackx.commands.AdHocCommand.Action; @@ -32,9 +34,6 @@ import org.jivesoftware.smackx.commands.AdHocCommandNote; import org.jivesoftware.smackx.commands.packet.AdHocCommandData; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The AdHocCommandDataProvider parses AdHocCommandData packets. * @@ -48,7 +47,7 @@ public class AdHocCommandDataProvider extends IQProvider { AdHocCommandData adHocCommandData = new AdHocCommandData(); DataFormProvider dataFormProvider = new DataFormProvider(); - int eventType; + XmlPullParser.Event eventType; String elementName; String namespace; adHocCommandData.setSessionID(parser.getAttributeValue("", "sessionid")); @@ -81,7 +80,7 @@ public class AdHocCommandDataProvider extends IQProvider { eventType = parser.next(); elementName = parser.getName(); namespace = parser.getNamespace(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("actions")) { String execute = parser.getAttributeValue("", "execute"); if (execute != null) { @@ -117,7 +116,7 @@ public class AdHocCommandDataProvider extends IQProvider { adHocCommandData.setError(error); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("command")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java index 280d3d0a2..39a32ec56 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/AbstractDelayInformationProvider.java @@ -22,12 +22,11 @@ import java.util.Date; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.delay.packet.DelayInformation; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class AbstractDelayInformationProvider extends ExtensionElementProvider { @Override @@ -36,23 +35,19 @@ public abstract class AbstractDelayInformationProvider extends ExtensionElementP IOException, SmackTextParseException { String stampString = (parser.getAttributeValue("", "stamp")); String from = parser.getAttributeValue("", "from"); - String reason = null; - if (!parser.isEmptyElementTag()) { - int event = parser.next(); - switch (event) { - case XmlPullParser.TEXT: - reason = parser.getText(); - parser.next(); - break; - case XmlPullParser.END_TAG: - reason = ""; - break; - default: - // TODO: Should be SmackParseException. - throw new IOException("Unexpected event: " + event); - } - } else { + final String reason; + XmlPullParser.Event event = parser.next(); + switch (event) { + case TEXT_CHARACTERS: + reason = parser.getText(); parser.next(); + break; + case END_ELEMENT: + reason = null; + break; + default: + // TODO: Should be SmackParseException. + throw new IOException("Unexpected event: " + event); } Date stamp = parseDate(stampString); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java index 16d244066..561e41038 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverInfoProvider.java @@ -23,12 +23,11 @@ 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.disco.packet.DiscoverInfo; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The DiscoverInfoProvider parses Service Discovery information packets. * @@ -48,8 +47,8 @@ public class DiscoverInfoProvider extends IQProvider { String lang = ""; discoverInfo.setNode(parser.getAttributeValue("", "node")); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { final String name = parser.getName(); final String namespace = parser.getNamespace(); if (namespace.equals(DiscoverInfo.NAMESPACE)) { @@ -71,7 +70,7 @@ public class DiscoverInfoProvider extends IQProvider { else { PacketParserUtils.addExtensionElement(discoverInfo, parser, xmlEnvironment); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("identity")) { // Create a new identity and add it to the discovered info. identity = new DiscoverInfo.Identity(category, type, identityName, lang); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java index bc9a8f3db..ed687c19d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/DiscoverItemsProvider.java @@ -22,12 +22,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; 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.disco.packet.DiscoverItems; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The DiscoverInfoProvider parses Service Discovery items packets. @@ -48,16 +48,16 @@ public class DiscoverItemsProvider extends IQProvider { String node = ""; discoverItems.setNode(parser.getAttributeValue("", "node")); while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "item".equals(parser.getName())) { + if (eventType == XmlPullParser.Event.START_ELEMENT && "item".equals(parser.getName())) { // Initialize the variables from the parsed XML jid = ParserUtils.getJidAttribute(parser); name = parser.getAttributeValue("", "name"); node = parser.getAttributeValue("", "node"); action = parser.getAttributeValue("", "action"); } - else if (eventType == XmlPullParser.END_TAG && "item".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "item".equals(parser.getName())) { // Create a new Item and add it to DiscoverItems. item = new DiscoverItems.Item(jid); item.setName(name); @@ -65,7 +65,7 @@ public class DiscoverItemsProvider extends IQProvider { item.setAction(action); discoverItems.addItem(item); } - else if (eventType == XmlPullParser.END_TAG && "query".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "query".equals(parser.getName())) { done = true; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java index 9bc29ea6a..a29130469 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java @@ -26,6 +26,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.Stanza; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager; import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamRequest; import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java index 919f0dae5..e8bd8b4fe 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/ForwardedProvider.java @@ -25,14 +25,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.delay.packet.DelayInformation; import org.jivesoftware.smackx.delay.provider.DelayInformationProvider; import org.jivesoftware.smackx.forward.packet.Forwarded; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * This class implements the {@link ExtensionElementProvider} to parse * forwarded messages from a packet. It will return a {@link Forwarded} stanza extension. @@ -51,9 +50,9 @@ public class ForwardedProvider extends ExtensionElementProvider { Stanza packet = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -72,11 +71,14 @@ public class ForwardedProvider extends ExtensionElementProvider { LOGGER.warning("Unsupported forwarded packet type: " + name); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java index 782c70ac8..5bdb2b41b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProvider.java @@ -23,12 +23,11 @@ import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseExcept import org.jivesoftware.smack.parsing.SmackParsingException.SmackUriSyntaxParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.geoloc.packet.GeoLocation; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class GeoLocationProvider extends ExtensionElementProvider { @Override @@ -38,9 +37,9 @@ public class GeoLocationProvider extends ExtensionElementProvider { GeoLocation.Builder builder = GeoLocation.builder(); outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "accuracy": @@ -117,10 +116,14 @@ public class GeoLocationProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java index ddb067f54..80c4bfc28 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/LastActivity.java @@ -22,10 +22,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * A last activity IQ for retrieving information about the last activity associated with a Jabber ID. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java index 792fb6a8f..13fcbfcd2 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/PrivateDataManager.java @@ -31,6 +31,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqprivate.packet.DefaultPrivateData; import org.jivesoftware.smackx.iqprivate.packet.PrivateData; @@ -38,8 +40,6 @@ import org.jivesoftware.smackx.iqprivate.packet.PrivateDataIQ; import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; import org.jxmpp.util.XmppStringUtils; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Manages private data, which is a mechanism to allow users to store arbitrary XML @@ -241,8 +241,8 @@ public final class PrivateDataManager extends Manager { PrivateData privateData = null; boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elementName = parser.getName(); String namespace = parser.getNamespace(); // See if any objects are registered to handle this private data type. @@ -256,23 +256,20 @@ public final class PrivateDataManager extends Manager { DefaultPrivateData data = new DefaultPrivateData(elementName, namespace); boolean finished = false; while (!finished) { - int event = parser.next(); - if (event == XmlPullParser.START_TAG) { + XmlPullParser.Event event = parser.next(); + if (event == XmlPullParser.Event.START_ELEMENT) { String name = parser.getName(); - // If an empty element, set the value with the empty string. - if (parser.isEmptyElementTag()) { + event = parser.next(); + if (event == XmlPullParser.Event.TEXT_CHARACTERS) { + String value = parser.getText(); + data.setValue(name, value); + } + else if (event == XmlPullParser.Event.END_ELEMENT) { + // If an empty element, set the value with the empty string. data.setValue(name,""); } - // Otherwise, get the the element text. - else { - event = parser.next(); - if (event == XmlPullParser.TEXT) { - String value = parser.getText(); - data.setValue(name, value); - } - } } - else if (event == XmlPullParser.END_TAG) { + else if (event == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(elementName)) { finished = true; } @@ -281,7 +278,7 @@ public final class PrivateDataManager extends Manager { privateData = data; } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java index a4332d667..6c8f72d3e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/PrivateDataProvider.java @@ -19,10 +19,10 @@ package org.jivesoftware.smackx.iqprivate.provider; import java.io.IOException; -import org.jivesoftware.smackx.iqprivate.packet.PrivateData; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.iqprivate.packet.PrivateData; /** * An interface for parsing custom private data. Each PrivateDataProvider must diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java index ffcd08b7d..33bbed247 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationProvider.java @@ -28,12 +28,11 @@ 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.iqregister.packet.Registration; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class RegistrationProvider extends IQProvider { @Override @@ -43,15 +42,15 @@ public class RegistrationProvider extends IQProvider { List packetExtensions = new LinkedList<>(); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // Any element that's in the jabber:iq:register namespace, // attempt to parse it if it's in the form value. if (parser.getNamespace().equals(Registration.NAMESPACE)) { String name = parser.getName(); String value = ""; - if (parser.next() == XmlPullParser.TEXT) { + if (parser.next() == XmlPullParser.Event.TEXT_CHARACTERS) { value = parser.getText(); } // Ignore instructions, but anything else should be added to the map. @@ -67,7 +66,7 @@ public class RegistrationProvider extends IQProvider { PacketParserUtils.addExtensionElement(packetExtensions, parser, xmlEnvironment); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(IQ.QUERY_ELEMENT)) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java index 3700b1596..51b5b505b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/RegistrationStreamFeatureProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.iqregister.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iqregister.packet.Registration; -import org.xmlpull.v1.XmlPullParser; - public class RegistrationStreamFeatureProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java index 851621777..328cdfccf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/VersionProvider.java @@ -22,12 +22,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.iqversion.packet.Version; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class VersionProvider extends IQProvider { @Override @@ -35,9 +34,9 @@ public class VersionProvider extends IQProvider { String name = null, version = null, os = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); switch (tagName) { case "name": @@ -51,10 +50,14 @@ public class VersionProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth && parser.getName().equals(IQ.QUERY_ELEMENT)) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } if (name == null && version == null && os == null) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java index 2322a06ac..b74a1d6e9 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleHandler.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; public interface JingleHandler { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java index 5f74e70a3..71efc73e6 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleManager.java @@ -31,6 +31,7 @@ import org.jivesoftware.smack.iqrequest.IQRequestHandler.Mode; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.util.StringUtils; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java index 1ae4ac650..79d6cfe70 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSession.java @@ -23,6 +23,7 @@ import java.util.concurrent.Future; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; import org.jivesoftware.smackx.jingle.transports.JingleTransportSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java index a57ede3ff..b20ddfede 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleSessionHandler.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.element.Jingle; public interface JingleSessionHandler { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java index 9a9941a07..661abbe0f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleTransportMethodManager.java @@ -23,6 +23,7 @@ import java.util.WeakHashMap; import org.jivesoftware.smack.Manager; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java index e2292ee0b..4e5c6eddf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/JingleUtil.java @@ -21,6 +21,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java index f4e348e77..fd4da5c19 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentDescriptionProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.JingleContentDescription; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class JingleContentDescriptionProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java index 249ec52d9..11d2df73b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleContentTransportProvider.java @@ -20,12 +20,11 @@ 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.jingle.element.JingleContentTransport; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public abstract class JingleContentTransportProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java index c588e4f61..f6b052bcb 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleErrorProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.jingle.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.jingle.element.JingleError; -import org.xmlpull.v1.XmlPullParser; - public class JingleErrorProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java index 0d7a4e46e..8ff1e269b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/provider/JingleProvider.java @@ -25,6 +25,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.StandardExtensionElementProvider; 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.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleAction; @@ -37,8 +39,6 @@ import org.jivesoftware.smackx.jingle.element.UnknownJingleContentDescription; import org.jivesoftware.smackx.jingle.element.UnknownJingleContentTransport; import org.jxmpp.jid.FullJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class JingleProvider extends IQProvider { @@ -65,9 +65,9 @@ public class JingleProvider extends IQProvider { outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); switch (tagName) { case JingleContent.ELEMENT: @@ -92,10 +92,14 @@ public class JingleProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -123,9 +127,9 @@ public class JingleProvider extends IQProvider { } outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String tagName = parser.getName(); String namespace = parser.getNamespace(); switch (tagName) { @@ -160,10 +164,14 @@ public class JingleProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java index 96fd3b54a..bfc0d1a5d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportManager.java @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.jingle.transports; import org.jivesoftware.smack.AbstractConnectionListener; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java index 004379f8e..a90fb020f 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/JingleTransportSession.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle.transports; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java index 63dada1ae..ccc30f80d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportManager.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle.transports.jingle_ibb; import java.util.WeakHashMap; import org.jivesoftware.smack.XMPPConnection; + import org.jivesoftware.smackx.jingle.JingleSession; import org.jivesoftware.smackx.jingle.provider.JingleContentProviderManager; import org.jivesoftware.smackx.jingle.transports.JingleTransportManager; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java index 1254f33b4..87ca1fd13 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/JingleIBBTransportSession.java @@ -22,6 +22,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.BytestreamListener; import org.jivesoftware.smackx.bytestreams.BytestreamRequest; import org.jivesoftware.smackx.bytestreams.BytestreamSession; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java index c45bc46f0..061ac0b0e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_ibb/provider/JingleIBBTransportProvider.java @@ -17,11 +17,11 @@ package org.jivesoftware.smackx.jingle.transports.jingle_ibb.provider; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.jingle.provider.JingleContentTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; -import org.xmlpull.v1.XmlPullParser; - /** * Parse JingleByteStreamTransport elements. */ diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java index 52c4289a6..60b1e9f88 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportManager.java @@ -27,6 +27,7 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamManager; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Proxy; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java index 578f2ae22..3f907b0cc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportSession.java @@ -27,6 +27,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; + import org.jivesoftware.smackx.bytestreams.socks5.Socks5BytestreamSession; import org.jivesoftware.smackx.bytestreams.socks5.Socks5Client; import org.jivesoftware.smackx.bytestreams.socks5.Socks5ClientForInitiator; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java index 407b6ad88..18d58639e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransport.java @@ -21,6 +21,7 @@ import java.util.List; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.jivesoftware.smackx.jingle.element.JingleContentTransportCandidate; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java index 67f5562ee..3adbf9f4c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportCandidate.java @@ -21,6 +21,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.element.JingleContentTransportCandidate; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java index 8ca592144..e21cd77bf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/elements/JingleS5BTransportInfo.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.jingle.element.JingleContentTransportInfo; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java index 943be425e..153fee447 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java @@ -24,12 +24,13 @@ import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.Jing import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_PORT; import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_PRIORITY; import static org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate.ATTR_TYPE; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.jivesoftware.smackx.jingle.provider.JingleContentTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; @@ -37,9 +38,6 @@ import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTr import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportInfo; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportInfo.JingleS5BCandidateTransportInfo; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Provider for JingleSocks5BytestreamTransport elements. */ @@ -62,10 +60,10 @@ public class JingleS5BTransportProvider extends JingleContentTransportProvider { private static final Logger LOGGER = Logger.getLogger(JivePropertiesExtensionProvider.class.getName()); @@ -58,8 +57,8 @@ public class JivePropertiesExtensionProvider extends ExtensionElementProvider properties = new HashMap<>(); while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("property")) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("property")) { // Parse a property boolean done = false; String name = null; @@ -68,7 +67,7 @@ public class JivePropertiesExtensionProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java index da79bd948..ce7366447 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java @@ -18,11 +18,10 @@ package org.jivesoftware.smackx.message_correct.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension; -import org.xmlpull.v1.XmlPullParser; - /** * A ExtensionElementProvider for the MessageCorrectExtension. As * MessageCorrection elements have only the ID of the message to replace. diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java index 2abe9af10..cc644bd07 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodListener.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.mood; import org.jivesoftware.smack.packet.Message; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.jxmpp.jid.BareJid; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java index d8cdd1678..a341bffcc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java @@ -28,6 +28,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.provider.ProviderManager; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java index 5db5f4784..192865faf 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/element/MoodElement.java @@ -21,6 +21,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.XmlStringBuilder; + import org.jivesoftware.smackx.mood.Mood; /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java index 42632a639..dfcedfef3 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodConcretisationProvider.java @@ -20,10 +20,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.mood.element.MoodConcretisation; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.mood.element.MoodConcretisation; public abstract class MoodConcretisationProvider extends ExtensionElementProvider { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java index 3f3158e65..c9814b091 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java @@ -16,9 +16,6 @@ */ package org.jivesoftware.smackx.mood.provider; -import static org.xmlpull.v1.XmlPullParser.END_TAG; -import static org.xmlpull.v1.XmlPullParser.START_TAG; - import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -27,13 +24,13 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.mood.Mood; import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class MoodProvider extends ExtensionElementProvider { private static final Logger LOGGER = Logger.getLogger(MoodProvider.class.getName()); @@ -47,12 +44,12 @@ public class MoodProvider extends ExtensionElementProvider { MoodConcretisation concretisation = null; outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); String namespace = parser.getNamespace(); switch (tag) { - case START_TAG: + case START_ELEMENT: if (MoodElement.ELEM_TEXT.equals(name)) { text = parser.nextText(); continue outerloop; @@ -76,12 +73,17 @@ public class MoodProvider extends ExtensionElementProvider { throw new XmlPullParserException("Unknown mood value: " + name + " encountered."); } - case END_TAG: + case END_ELEMENT: if (MoodElement.ELEMENT.equals(name)) { MoodElement.MoodSubjectElement subjectElement = (mood == null && concretisation == null) ? null : new MoodElement.MoodSubjectElement(mood, concretisation); return new MoodElement(subjectElement, text); } + break; + + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java index 1fd7d40a4..bc59b24ea 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/SimpleMoodConcretisationProvider.java @@ -19,10 +19,10 @@ package org.jivesoftware.smackx.mood.provider; import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smackx.mood.element.MoodConcretisation; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.mood.element.MoodConcretisation; /** * Simple {@link MoodConcretisationProvider} implementation, suitable for really simple {@link MoodConcretisation}s, diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java index 12f882adc..6d870ba17 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/GroupChatInvitation.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * A group chat invitation stanza extension, which is used to invite other diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java index 7e3671772..615a21589 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCAdminProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.packet.MUCAdmin; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The MUCAdminProvider parses MUCAdmin packets. (@see MUCAdmin) * @@ -40,13 +39,13 @@ public class MUCAdminProvider extends IQProvider { MUCAdmin mucAdmin = new MUCAdmin(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { mucAdmin.addItem(MUCParserUtils.parseItem(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java index df58a271b..4acdbd5f6 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCOwnerProvider.java @@ -23,12 +23,11 @@ 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.muc.packet.MUCOwner; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The MUCOwnerProvider parses MUCOwner packets. (@see MUCOwner) * @@ -41,8 +40,8 @@ public class MUCOwnerProvider extends IQProvider { MUCOwner mucOwner = new MUCOwner(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { mucOwner.addItem(MUCParserUtils.parseItem(parser)); } @@ -54,7 +53,7 @@ public class MUCOwnerProvider extends IQProvider { PacketParserUtils.addExtensionElement(mucOwner, parser, xmlEnvironment); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java index 4dff7f255..897fc131b 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCParserUtils.java @@ -19,6 +19,8 @@ package org.jivesoftware.smackx.muc.provider; import java.io.IOException; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.MUCAffiliation; import org.jivesoftware.smackx.muc.MUCRole; @@ -28,8 +30,6 @@ import org.jivesoftware.smackx.muc.packet.MUCItem; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.parts.Resourcepart; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class MUCParserUtils { public static MUCItem parseItem(XmlPullParser parser) throws XmlPullParserException, IOException { @@ -42,9 +42,9 @@ public class MUCParserUtils { Resourcepart actorNick = null; String reason = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "actor": @@ -62,11 +62,14 @@ public class MUCParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new MUCItem(affiliation, role, actor, reason, jid, nick, actorNick); @@ -77,9 +80,9 @@ public class MUCParserUtils { final EntityBareJid jid = ParserUtils.getBareJidAttribute(parser); String reason = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); switch (name) { case "reason": @@ -87,11 +90,14 @@ public class MUCParserUtils { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (initialDepth == parser.getDepth()) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new Destroy(jid, reason); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java index c702f00c0..d96f1fc42 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java @@ -22,13 +22,13 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.muc.packet.MUCUser; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The MUCUserProvider parses packets with extended presence information about @@ -51,7 +51,7 @@ public class MUCUserProvider extends ExtensionElementProvider { MUCUser mucUser = new MUCUser(); outerloop: while (true) { switch (parser.next()) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (parser.getName()) { case "invite": mucUser.setInvite(parseInvite(parser)); @@ -74,11 +74,14 @@ public class MUCUserProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } @@ -91,13 +94,13 @@ public class MUCUserProvider extends ExtensionElementProvider { EntityJid from = ParserUtils.getEntityJidAttribute(parser, "from"); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("reason")) { reason = parser.nextText(); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("invite")) { break outerloop; } @@ -112,13 +115,13 @@ public class MUCUserProvider extends ExtensionElementProvider { EntityBareJid from = ParserUtils.getBareJidAttribute(parser, "from"); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("reason")) { reason = parser.nextText(); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("decline")) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java index 495ba586b..0a46d91d4 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/provider/NickProvider.java @@ -20,12 +20,11 @@ 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.nick.packet.Nick; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class NickProvider extends ExtensionElementProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java index f1b866bc8..0bbb078ba 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageInfo.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * OfflineMessageInfo is an extension included in the retrieved offline messages requested by @@ -110,11 +109,11 @@ public class OfflineMessageInfo implements ExtensionElement { OfflineMessageInfo info = new OfflineMessageInfo(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) info.setNode(parser.getAttributeValue("", "node")); - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("offline")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java index 889c3563b..f534f7d62 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/OfflineMessageRequest.java @@ -25,9 +25,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Represents a request to get some or all the offline messages of a user. This class can also @@ -205,8 +204,8 @@ public class OfflineMessageRequest extends IQ { OfflineMessageRequest request = new OfflineMessageRequest(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { request.addItem(parseItem(parser)); } @@ -216,7 +215,7 @@ public class OfflineMessageRequest extends IQ { else if (parser.getName().equals("fetch")) { request.setFetch(true); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("offline")) { done = true; } @@ -233,8 +232,8 @@ public class OfflineMessageRequest extends IQ { item.setAction(parser.getAttributeValue("", "action")); item.setJid(parser.getAttributeValue("", "jid")); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.END_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("item")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java index 9086720d0..6e032bf2e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java @@ -20,12 +20,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.ping.packet.Ping; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class PingProvider extends IQProvider { @Override diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java index 411042e3f..28d6f957e 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/PrivacyProvider.java @@ -22,13 +22,12 @@ import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; 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.privacy.packet.Privacy; import org.jivesoftware.smackx.privacy.packet.PrivacyItem; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The PrivacyProvider parses {@link Privacy} packets. {@link Privacy} * Parses the query sub-document and creates an instance of {@link Privacy}. @@ -45,8 +44,8 @@ public class PrivacyProvider extends IQProvider { Privacy privacy = new Privacy(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // CHECKSTYLE:OFF if (parser.getName().equals("active")) { String activeName = parser.getAttributeValue("", "name"); @@ -69,7 +68,7 @@ public class PrivacyProvider extends IQProvider { parseList(parser, privacy); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("query")) { done = true; } @@ -85,15 +84,15 @@ public class PrivacyProvider extends IQProvider { String listName = parser.getAttributeValue("", "name"); ArrayList items = new ArrayList<>(); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { // CHECKSTYLE:OFF items.add(parseItem(parser)); // CHECKSTYLE:ON } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("list")) { done = true; } @@ -152,9 +151,9 @@ public class PrivacyProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "iq": @@ -171,10 +170,14 @@ public class PrivacyProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java index 0fec92dfe..9bdaaef15 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/EmbeddedPacketExtension.java @@ -27,7 +27,7 @@ import org.jivesoftware.smack.util.PacketParserUtils; * extensions. This effectively extends the idea of an extension within one of the * top level {@link Stanza} types to consider any embedded element to be an extension * of its parent. This more easily enables the usage of some of Smacks parsing - * utilities such as {@link PacketParserUtils#parseExtensionElement(String, String, org.xmlpull.v1.XmlPullParser, org.jivesoftware.smack.packet.XmlEnvironment)} to be used + * utilities such as {@link PacketParserUtils#parseExtensionElement(String, String, org.jivesoftware.smack.xml.XmlPullParser, org.jivesoftware.smack.packet.XmlEnvironment)} to be used * to parse any element of the XML being parsed. * *

Top level extensions have only one element, but they can have multiple children, or diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java index 529ff1fa1..5459a91d1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/SimplePayload.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * The default payload representation for {@link PayloadItem#getPayload()}. It simply diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java index fdf612902..ecdb5deb1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/AffiliationProvider.java @@ -21,12 +21,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.Affiliation; import org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace; import org.jxmpp.jid.BareJid; -import org.xmlpull.v1.XmlPullParser; /** * Parses the affiliation element out of the reply stanza from the server diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java index 89319c8d9..4c7d0e7ce 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/ItemProvider.java @@ -24,6 +24,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.pubsub.Item; import org.jivesoftware.smackx.pubsub.Item.ItemNamespace; @@ -31,9 +33,6 @@ import org.jivesoftware.smackx.pubsub.PayloadItem; import org.jivesoftware.smackx.pubsub.SimplePayload; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses an item element as is defined in both the {@link PubSubNamespace#basic} and * {@link PubSubNamespace#event} namespaces. To parse the item contents, it will use whatever @@ -51,9 +50,9 @@ public class ItemProvider extends ExtensionElementProvider { String xmlns = parser.getNamespace(); ItemNamespace itemNamespace = ItemNamespace.fromXmlns(xmlns); - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if (tag == XmlPullParser.END_TAG) { + if (tag == XmlPullParser.Event.END_ELEMENT) { return new Item(itemNamespace, id, node); } else { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java index 2435b3c29..1faf9ea59 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/PubSubProvider.java @@ -23,13 +23,12 @@ 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.pubsub.packet.PubSub; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses the root PubSub stanza extensions of the {@link IQ} stanza and returns * a {@link PubSub} instance. @@ -44,16 +43,19 @@ public class PubSubProvider extends IQProvider { PubSub pubsub = new PubSub(pubSubNamespace); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: PacketParserUtils.addExtensionElement(pubsub, parser, xmlEnvironment); break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return pubsub; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java index 306258503..88f3c2e82 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/provider/SubscriptionProvider.java @@ -21,12 +21,12 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.pubsub.Subscription; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Parses the subscription element out of the PubSub IQ message from @@ -44,17 +44,17 @@ public class SubscriptionProvider extends ExtensionElementProvider String state = parser.getAttributeValue(null, "subscription"); boolean isRequired = false; - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("subscribe-options")) { + if ((tag == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("subscribe-options")) { tag = parser.next(); - if ((tag == XmlPullParser.START_TAG) && parser.getName().equals("required")) + if ((tag == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("required")) isRequired = true; - while (tag != XmlPullParser.END_TAG && !parser.getName().equals("subscribe-options")) tag = parser.next(); + while (tag != XmlPullParser.Event.END_ELEMENT && !parser.getName().equals("subscribe-options")) tag = parser.next(); } - while (parser.getEventType() != XmlPullParser.END_TAG) parser.next(); + while (parser.getEventType() != XmlPullParser.Event.END_ELEMENT) parser.next(); return new Subscription(jid, nodeId, subId, (state == null ? null : Subscription.State.valueOf(state)), isRequired); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java index 4d867a9d9..0ecef64f7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptRequest.java @@ -24,9 +24,8 @@ import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.packet.id.StanzaIdUtil; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Represents a message delivery receipt request entry as specified by diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java index 0ee24acfe..521810a45 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/RSMSetProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014-2016 Florian Schmaus + * Copyright © 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.rsm.packet.RSMSet; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class RSMSetProvider extends ExtensionElementProvider { public static final RSMSetProvider INSTANCE = new RSMSetProvider(); @@ -44,9 +43,9 @@ public class RSMSetProvider extends ExtensionElementProvider { int firstIndex = -1; outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "after": @@ -74,10 +73,14 @@ public class RSMSetProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new RSMSet(after, before, count, index, last, max, firstString, diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java index 90879e415..702e494ea 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/SimpleUserSearch.java @@ -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; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java index a8921b772..c99cb6c1a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/UserSearch.java @@ -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; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java index 6427d46e3..82517631c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/SharedGroupsInfo.java @@ -23,9 +23,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * IQ stanza used for discovering the user's shared groups and for getting the answer back @@ -77,11 +76,11 @@ public class SharedGroupsInfo extends IQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && parser.getName().equals("group")) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && parser.getName().equals("group")) { groupsInfo.getGroups().add(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("sharedgroup")) { done = true; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java index d145a7aa6..a0e2cf452 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/HeaderProvider.java @@ -20,12 +20,11 @@ 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.shim.packet.Header; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Parses the header element as defined in Stanza Headers and Internet Metadata (SHIM). * @@ -39,11 +38,11 @@ public class HeaderProvider extends ExtensionElementProvider

{ parser.next(); - if (parser.getEventType() == XmlPullParser.TEXT) { + if (parser.getEventType() == XmlPullParser.Event.TEXT_CHARACTERS) { value = parser.getText(); } - while (parser.getEventType() != XmlPullParser.END_TAG) { + while (parser.getEventType() != XmlPullParser.Event.END_ELEMENT) { parser.next(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java index b724e93da..f1719682c 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/StreamInitiationProvider.java @@ -25,6 +25,8 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.si.packet.StreamInitiation; import org.jivesoftware.smackx.si.packet.StreamInitiation.File; @@ -32,8 +34,6 @@ import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * The StreamInitiationProvider parses StreamInitiation packets. @@ -66,14 +66,13 @@ public class StreamInitiationProvider extends IQProvider { DataForm form = null; DataFormProvider dataFormProvider = new DataFormProvider(); - int eventType; String elementName; String namespace; while (!done) { - eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); elementName = parser.getName(); namespace = parser.getNamespace(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (elementName.equals("file")) { name = parser.getAttributeValue("", "name"); size = parser.getAttributeValue("", "size"); @@ -87,7 +86,7 @@ public class StreamInitiationProvider extends IQProvider { && namespace.equals("jabber:x:data")) { form = dataFormProvider.parse(parser); } - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (elementName.equals("si")) { done = true; } else if (elementName.equals("file")) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java index a45aa6db5..6aa7140f8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java @@ -21,12 +21,11 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.vcardtemp.packet.VCard; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * vCard provider. * @@ -74,9 +73,9 @@ public class VCardProvider extends IQProvider { String name = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); switch (name) { case "N": @@ -107,12 +106,13 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.TEXT: + case TEXT_CHARACTERS: if (initialDepth + 1 == parser.getDepth()) { - vCard.setField(name, parser.getText()); + String text = parser.getText(); + vCard.setField(name, text); } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -129,9 +129,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); boolean isWork = true; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if ("HOME".equals(name)) { isWork = false; @@ -149,7 +149,7 @@ public class VCardProvider extends IQProvider { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -166,9 +166,9 @@ public class VCardProvider extends IQProvider { String telLabel = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); if ("HOME".equals(name)) { isWork = false; @@ -196,7 +196,7 @@ public class VCardProvider extends IQProvider { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -211,9 +211,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "ORGNAME": @@ -226,7 +226,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -242,9 +242,9 @@ public class VCardProvider extends IQProvider { boolean isWork = false; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "WORK": @@ -262,7 +262,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -277,9 +277,9 @@ public class VCardProvider extends IQProvider { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "FAMILY": @@ -301,7 +301,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } @@ -319,9 +319,9 @@ public class VCardProvider extends IQProvider { String mimetype = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "BINVAL": @@ -334,7 +334,7 @@ public class VCardProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java index 502277661..cdf95ddfc 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/DataFormProvider.java @@ -26,6 +26,8 @@ import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.RosterPacket; import org.jivesoftware.smack.roster.provider.RosterPacketProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; @@ -34,9 +36,6 @@ import org.jivesoftware.smackx.xdatalayout.provider.DataLayoutProvider; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.provider.DataValidationProvider; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The DataFormProvider parses DataForm packets. * @@ -51,9 +50,9 @@ public class DataFormProvider extends ExtensionElementProvider { DataForm.Type dataFormType = DataForm.Type.fromString(parser.getAttributeValue("", "type")); DataForm dataForm = new DataForm(dataFormType); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -86,11 +85,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return dataForm; @@ -111,9 +113,9 @@ public class DataFormProvider extends ExtensionElementProvider { formField.setLabel(parser.getAttributeValue("", "label")); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); String namespace = parser.getNamespace(); switch (name) { @@ -137,11 +139,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return formField; @@ -151,9 +156,9 @@ public class DataFormProvider extends ExtensionElementProvider { final int initialDepth = parser.getDepth(); List fields = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "field": @@ -161,11 +166,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new DataForm.Item(fields); @@ -175,9 +183,9 @@ public class DataFormProvider extends ExtensionElementProvider { final int initialDepth = parser.getDepth(); List fields = new ArrayList<>(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "field": @@ -185,11 +193,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return new DataForm.ReportedData(fields); @@ -200,9 +211,9 @@ public class DataFormProvider extends ExtensionElementProvider { FormField.Option option = null; String label = parser.getAttributeValue("", "label"); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case "value": @@ -210,11 +221,14 @@ public class DataFormProvider extends ExtensionElementProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return option; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java index f66b23689..ff4bef1d7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/DataLayoutProvider.java @@ -19,6 +19,9 @@ package org.jivesoftware.smackx.xdatalayout.provider; import java.io.IOException; import java.util.List; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.xdatalayout.packet.DataLayout; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.DataFormLayoutElement; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Fieldref; @@ -26,9 +29,6 @@ import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Reportedref; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Section; import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Text; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Extension Provider for Page layout of forms. * @@ -52,9 +52,9 @@ public class DataLayoutProvider { private static void parseLayout(List layout, XmlPullParser parser) throws XmlPullParserException, IOException { final int initialDepth = parser.getDepth(); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: switch (parser.getName()) { case Text.ELEMENT: layout.add(new Text(parser.nextText())); @@ -72,11 +72,14 @@ public class DataLayoutProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } @@ -85,8 +88,8 @@ public class DataLayoutProvider { final int initialDepth = parser.getDepth(); Fieldref fieldref = new Fieldref(parser.getAttributeValue("", "var")); outerloop: while (true) { - int eventType = parser.next(); - if (eventType == XmlPullParser.END_TAG && parser.getDepth() == initialDepth) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.END_ELEMENT && parser.getDepth() == initialDepth) { break outerloop; } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java index 67b82447a..82f636125 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationProvider.java @@ -20,6 +20,8 @@ import java.io.IOException; import java.util.logging.Logger; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; @@ -28,9 +30,6 @@ import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.OpenValida import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RegexValidateElement; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Extension Provider for Data validation of forms. * @@ -47,9 +46,9 @@ public class DataValidationProvider { ListRange listRange = null; outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case OpenValidateElement.METHOD: @@ -80,7 +79,7 @@ public class DataValidationProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { if (dataValidation == null) { // XEP-122 § 3.2 states that "If no validation method is specified, @@ -91,6 +90,9 @@ public class DataValidationProvider { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return dataValidation; diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java index 6335daedb..71f15fe53 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software, 2014 Florian Schmaus + * Copyright 2003-2007 Jive Software, 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,11 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xhtmlim.packet.XHTMLExtension; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * The XHTMLExtensionProvider parses XHTML packets. * @@ -40,13 +39,13 @@ public class XHTMLExtensionProvider extends ExtensionElementProvider"; // @formatter:on - CapsExtension capsExtension = TestUtils.parseExtensionElement(capsExtensionString); + CapsExtension capsExtension = SmackTestUtil.parse(capsExtensionString, CapsExtensionProvider.class, parserKind); assertNotNull(capsExtension); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java index 7a4c6756c..5b4b0eba0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java @@ -32,6 +32,8 @@ import javax.xml.parsers.FactoryConfigurationError; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.delay.DelayInformationManager; @@ -40,8 +42,6 @@ import org.jivesoftware.smackx.delay.packet.DelayInformation; import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class DelayInformationTest extends InitExtensions { @@ -76,7 +76,7 @@ public class DelayInformationTest extends InitExtensions { assertEquals(date, delayInfo.getStamp()); assertEquals("Offline Storage", delayInfo.getReason()); - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("x", parser.getName()); control = XMLBuilder.create("x") @@ -92,7 +92,7 @@ public class DelayInformationTest extends InitExtensions { assertEquals(date, delayInfo.getStamp()); assertNull(delayInfo.getReason()); - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("x", parser.getName()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java index e24ad2ef4..59e8b42f4 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/forward/ForwardedTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertThat; import java.util.Properties; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.delay.packet.DelayInformation; import org.jivesoftware.smackx.forward.packet.Forwarded; @@ -31,7 +32,6 @@ import org.jivesoftware.smackx.forward.provider.ForwardedProvider; import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class ForwardedTest { @@ -62,7 +62,7 @@ public class ForwardedTest { assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("forwarded", parser.getName()); } @@ -90,7 +90,7 @@ public class ForwardedTest { assertThat("romeo@montague.com", equalsCharSequence(fwd.getForwardedStanza().getFrom())); // check end of tag - assertEquals(XmlPullParser.END_TAG, parser.getEventType()); + assertEquals(XmlPullParser.Event.END_ELEMENT, parser.getEventType()); assertEquals("forwarded", parser.getName()); } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java index bd1a430a8..a1277f86e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleContentTest.java @@ -22,6 +22,7 @@ import static junit.framework.TestCase.assertNotSame; import static junit.framework.TestCase.assertNull; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.element.JingleContent; import org.junit.Test; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java index 6ca6d88a9..3cd884199 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleErrorTest.java @@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.jingle.element.JingleError; import org.jivesoftware.smackx.jingle.provider.JingleErrorProvider; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java index e10a879f2..c70c9f9ec 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.jingle; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContent; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java index 4655a621b..6faa9bdc0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleContentProviderManagerTest.java @@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport; import org.jivesoftware.smackx.jingle.transports.jingle_ibb.provider.JingleIBBTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java index 68eb4ab57..294e37768 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java @@ -21,14 +21,14 @@ import static org.junit.Assert.assertEquals; import java.io.IOException; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.Jingle; import org.jivesoftware.smackx.jingle.element.JingleContentDescription; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class JingleProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java index 68ca37f06..c049d27cc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/JingleS5BTransportTest.java @@ -23,8 +23,8 @@ import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import org.jivesoftware.smack.test.util.SmackTestSuite; - import org.jivesoftware.smack.test.util.TestUtils; + import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java index 59bee0cf0..02baa5bd9 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/last_interaction/IdleTest.java @@ -25,12 +25,13 @@ import java.util.Date; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.last_interaction.element.IdleElement; import org.jivesoftware.smackx.last_interaction.provider.IdleProvider; import org.junit.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; public class IdleTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java index 5d6247e28..86b63780e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java @@ -16,12 +16,13 @@ */ package org.jivesoftware.smackx.message_correct; +import static org.junit.jupiter.api.Assertions.assertEquals; + import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension; -import org.junit.Assert; import org.junit.Test; public class MessageCorrectExtensionTest { @@ -42,11 +43,11 @@ public class MessageCorrectExtensionTest { Message initialMessage = PacketParserUtils.parseStanza(initialMessageXml); MessageCorrectExtension messageCorrectExtension = new MessageCorrectExtension(idInitialMessage); - Assert.assertEquals(messageCorrectExtension.toXML().toString(), messageCorrectionXml.toString()); + assertEquals(messageCorrectExtension.toXML().toString(), messageCorrectionXml.toString()); initialMessage.addExtension(messageCorrectExtension); - Assert.assertEquals(initialMessage.toXML().toString(), expectedXml.toString()); + assertEquals(initialMessage.toXML().toString(), expectedXml.toString()); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java index 346b990bf..8bfaf9d8a 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodConcretisationTest.java @@ -24,13 +24,14 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.mood.element.MoodConcretisation; import org.jivesoftware.smackx.mood.element.MoodElement; import org.jivesoftware.smackx.mood.provider.MoodProvider; import org.jivesoftware.smackx.mood.provider.SimpleMoodConcretisationProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * This test checks, if extending XEP-0107: User Mood using custom mood concretisations works. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java index 9916cfaf1..2d68cc52e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodElementTest.java @@ -23,12 +23,13 @@ import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.jivesoftware.smackx.mood.provider.MoodProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class MoodElementTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java index 943371b12..a650bc7b5 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/mood/MoodManagerTest.java @@ -23,6 +23,7 @@ import static junit.framework.TestCase.assertTrue; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.mood.element.MoodElement; import org.junit.Test; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java index 729e2a12d..96034f920 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java @@ -36,7 +36,6 @@ import org.jivesoftware.smackx.disco.packet.DiscoverInfo.Identity; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.jivesoftware.smackx.xdata.packet.DataForm; -import org.junit.Assert; import org.junit.Test; /** @@ -77,7 +76,7 @@ public class ConfigureFormTest extends InitExtensions { fail(); } catch (XMPPErrorException e) { - Assert.assertEquals(StanzaError.Type.AUTH, e.getStanzaError().getType()); + assertEquals(StanzaError.Type.AUTH, e.getStanzaError().getType()); } } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java index 1d81bf4c9..1f36293fc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java @@ -25,6 +25,7 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; @@ -32,7 +33,6 @@ import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * Item validation test. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java index 3d2341a9b..cb518220d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/PubSubNodeTest.java @@ -30,6 +30,7 @@ import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.Affiliation.AffiliationNamespace; import org.jivesoftware.smackx.pubsub.packet.PubSub; @@ -40,7 +41,6 @@ import org.jivesoftware.util.Protocol; import org.junit.Test; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class PubSubNodeTest extends SmackTestSuite { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java index 865b185fb..59f33e43d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/provider/PubSubProviderTest.java @@ -24,6 +24,7 @@ import java.util.List; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.pubsub.PubSubElementType; import org.jivesoftware.smackx.pubsub.Subscription; @@ -31,7 +32,6 @@ import org.jivesoftware.smackx.pubsub.SubscriptionsExtension; import org.jivesoftware.smackx.pubsub.packet.PubSub; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class PubSubProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java index b1b06a982..645b54271 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java @@ -30,6 +30,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.test.util.WaitForPacketListener; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.receipts.DeliveryReceiptManager.AutoReceiptMode; @@ -38,7 +39,6 @@ import com.jamesmurty.utils.XMLBuilder; import org.junit.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; public class DeliveryReceiptTest extends InitExtensions { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java index ab9c66350..7a5c2ab55 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/shim/provider/HeadersProviderTest.java @@ -21,12 +21,12 @@ import static org.junit.Assert.assertEquals; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.shim.packet.Header; import org.jivesoftware.smackx.shim.packet.HeadersExtension; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; public class HeadersProviderTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java index 5500125e9..67a3b64ae 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdata/packet/DataFormTest.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertNotNull; import org.jivesoftware.smack.packet.Element; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.FormField.Type; @@ -33,7 +34,6 @@ import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; /** * Unit tests for DataForm reading and parsing. diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java index 08820fc2f..ea36db948 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatalayout/packet/DataLayoutTest.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.io.InputStreamReader; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.jivesoftware.smackx.xdata.provider.DataFormProvider; @@ -33,8 +35,6 @@ import org.jivesoftware.smackx.xdatalayout.packet.DataLayout.Text; import org.jivesoftware.smackx.xdatalayout.provider.DataLayoutProvider; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Unit tests for DataForm reading and parsing. @@ -143,9 +143,8 @@ public class DataLayoutTest { public void testLayoutFromFile() throws Exception { DataFormProvider pr = new DataFormProvider(); - XmlPullParser parser = PacketParserUtils.newXmppParser(); - parser.setInput(new InputStreamReader(this.getClass().getResourceAsStream(TEST_INPUT_1), "UTF-8")); - parser.next(); + InputStreamReader inputStreamReader = new InputStreamReader(this.getClass().getResourceAsStream(TEST_INPUT_1), "UTF-8"); + XmlPullParser parser = PacketParserUtils.getParserFor(inputStreamReader); DataForm form = pr.parse(parser); assertNotNull(form); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java index e8e272d05..53484f7b6 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xdatavalidation/provider/DataValidationTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Anno van Vliet, 2018 Florian Schmaus + * Copyright 2014 Anno van Vliet, 2018-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,18 +22,22 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; +import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xdata.FormField; import org.jivesoftware.smackx.xdata.packet.DataForm; +import org.jivesoftware.smackx.xdata.provider.DataFormProvider; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.BasicValidateElement; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.ListRange; import org.jivesoftware.smackx.xdatavalidation.packet.ValidateElement.RangeValidateElement; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; /** * Data validation test. @@ -132,8 +136,9 @@ public class DataValidationTest { DataValidationProvider.parse(parser); } - @Test - public void testNamespacePrefix() throws Exception { + @ParameterizedTest + @EnumSource(SmackTestUtil.XmlPullParserKind.class) + public void testNamespacePrefix(SmackTestUtil.XmlPullParserKind parserKind) throws Exception { String formFieldUsingNamespacePrefix = "" + ""; - DataForm dataForm = TestUtils.parseExtensionElement(formFieldUsingNamespacePrefix); + DataForm dataForm = SmackTestUtil.parse(formFieldUsingNamespacePrefix, DataFormProvider.class, parserKind); assertEquals("Sample Form", dataForm.getTitle()); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java index dc422ff59..41acbece8 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/xhtmlim/provider/XHTMLExtensionProviderTest.java @@ -21,24 +21,24 @@ import static org.jivesoftware.smack.test.util.CharSequenceEquals.equalsCharSequ import static org.junit.Assert.assertThat; import java.io.IOException; +import java.io.InputStream; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xhtmlim.packet.XHTMLExtension; import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class XHTMLExtensionProviderTest { public static final String XHTML_EXTENSION_SAMPLE_RESOURCE_NAME = "xhtml.xml"; @Test public void parsesWell() throws IOException, XmlPullParserException { - XmlPullParser parser = PacketParserUtils.newXmppParser(); - parser.setInput(getClass().getResourceAsStream(XHTML_EXTENSION_SAMPLE_RESOURCE_NAME), "UTF-8"); + InputStream inputStream = getClass().getResourceAsStream(XHTML_EXTENSION_SAMPLE_RESOURCE_NAME); + XmlPullParser parser = PacketParserUtils.getParserFor(inputStream); parser.next(); XHTMLExtensionProvider provider = new XHTMLExtensionProvider(); diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java index 5513015af..47a08f1fb 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterPacketProvider.java @@ -23,11 +23,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.roster.packet.RosterPacket; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class RosterPacketProvider extends IQProvider { @@ -40,9 +40,9 @@ public class RosterPacketProvider extends IQProvider { roster.setVersion(version); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String startTag = parser.getName(); switch (startTag) { case "item": @@ -51,7 +51,7 @@ public class RosterPacketProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: String endTag = parser.getName(); switch (endTag) { case IQ.QUERY_ELEMENT: @@ -59,6 +59,10 @@ public class RosterPacketProvider extends IQProvider { break outerloop; } } + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } return roster; @@ -85,9 +89,9 @@ public class RosterPacketProvider extends IQProvider { item.setApproved(approved); outerloop: while (true) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: String name = parser.getName(); switch (name) { case RosterPacket.Item.GROUP: @@ -98,11 +102,14 @@ public class RosterPacketProvider extends IQProvider { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: if (parser.getDepth() == initialDepth) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java index 0c0d1fefd..0f71fafea 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/RosterVerStreamFeatureProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.RosterVer; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class RosterVerStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java index 4016a5040..422ced505 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/SubscriptionPreApprovalStreamFeatureProvider.java @@ -20,7 +20,7 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.roster.packet.SubscriptionPreApproval; -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class SubscriptionPreApprovalStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java index 473777569..3dd4fde6a 100644 --- a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java +++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/DirectoryRosterStore.java @@ -34,10 +34,10 @@ import org.jivesoftware.smack.roster.provider.RosterPacketProvider; import org.jivesoftware.smack.util.FileUtils; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.stringencoder.Base32; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Stores roster entries as specified by RFC 6121 for roster versioning diff --git a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java index 85d0457d6..1af4f574c 100644 --- a/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java +++ b/smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java @@ -45,6 +45,7 @@ import org.jivesoftware.smack.roster.packet.RosterPacket.ItemType; import org.jivesoftware.smack.test.util.TestUtils; import org.jivesoftware.smack.test.util.WaitForPacketListener; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; import org.junit.After; import org.junit.Before; @@ -53,7 +54,6 @@ import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; /** * Tests that verifies the correct behavior of the {@link Roster} implementation. diff --git a/smack-integration-test/build.gradle b/smack-integration-test/build.gradle index ab813a5d4..aa6ade5ed 100644 --- a/smack-integration-test/build.gradle +++ b/smack-integration-test/build.gradle @@ -22,6 +22,7 @@ dependencies { // junit:junit:4.12, which we currently need in sinttest, since it // (ab)uses @Before from org.junit compile "org.junit.vintage:junit-vintage-engine:$junitVersion" + compile 'junit:junit:4.12' testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" } diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java index 5ff5fb369..29a24aecc 100644 --- a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/XmppConnectionDescriptor.java @@ -71,7 +71,12 @@ public class XmppConnectionDescriptor { 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 { 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 { + 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; } diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java index da7c67779..ee3d78e48 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleTransportProvider.java @@ -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 { @Override public OfferRequestPacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); String sessionID = null; int timeout = -1; OfferContent content = null; boolean done = false; Map> metaData = new HashMap<>(); - if (eventType != XmlPullParser.START_TAG) { + if (eventType != XmlPullParser.Event.START_ELEMENT) { // throw exception } @@ -71,7 +71,7 @@ public class OfferRequestProvider extends IQProvider { while (!done) { eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + if (eventType == XmlPullParser.Event.START_ELEMENT) { String elemName = parser.getName(); if ("timeout".equals(elemName)) { @@ -101,7 +101,7 @@ public class OfferRequestProvider extends IQProvider { content = new TransferRequest(transfer.getInviter(), transfer.getRoom(), transfer.getReason()); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if ("offer".equals(parser.getName())) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java index 131c33159..8cc0ad482 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; 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.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * An IQProvider class which has savvy about the offer-revoke tag.
@@ -46,20 +46,20 @@ public class OfferRevokeProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); + XmlPullParser.Event eventType = parser.next(); - if ((eventType == XmlPullParser.START_TAG) && parser.getName().equals("reason")) { + if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals("reason")) { reason = parser.nextText(); } - else if ((eventType == XmlPullParser.START_TAG) + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(SessionID.ELEMENT_NAME)) { sessionID = parser.getAttributeValue("", "id"); } - else if ((eventType == XmlPullParser.START_TAG) + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(UserID.ELEMENT_NAME)) { userID = ParserUtils.getJidAttribute(parser, "id"); } - else if ((eventType == XmlPullParser.END_TAG) && parser.getName().equals( + else if ((eventType == XmlPullParser.Event.END_ELEMENT) && parser.getName().equals( "offer-revoke")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java index c2b95091d..85cefb51c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueDetails.java @@ -31,12 +31,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.workgroup.QueueUser; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * Queue details stanza extension, which contains details about the users * currently in a queue. @@ -153,11 +152,11 @@ public final class QueueDetails implements ExtensionElement { SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); QueueDetails queueDetails = new QueueDetails(); - int eventType = parser.getEventType(); - while (eventType != XmlPullParser.END_TAG && + XmlPullParser.Event eventType = parser.getEventType(); + while (eventType != XmlPullParser.Event.END_ELEMENT && "notify-queue-details".equals(parser.getName())) { eventType = parser.next(); - while ((eventType == XmlPullParser.START_TAG) && "user".equals(parser.getName())) { + while ((eventType == XmlPullParser.Event.START_ELEMENT) && "user".equals(parser.getName())) { String uid; int position = -1; int time = -1; @@ -170,7 +169,7 @@ public final class QueueDetails implements ExtensionElement { } eventType = parser.next(); - while (eventType != XmlPullParser.END_TAG + while (eventType != XmlPullParser.Event.END_ELEMENT || !"user".equals(parser.getName())) { if ("position".equals(parser.getName())) { position = Integer.parseInt(parser.nextText()); @@ -197,7 +196,7 @@ public final class QueueDetails implements ExtensionElement { eventType = parser.next(); - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java index a8cc1ffa9..68709d4de 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueOverview.java @@ -27,12 +27,11 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.SmackTextParseException; import org.jivesoftware.smack.provider.ExtensionElementProvider; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.workgroup.agent.WorkgroupQueue; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - public class QueueOverview implements ExtensionElement { /** @@ -130,12 +129,12 @@ public class QueueOverview implements ExtensionElement { public QueueOverview parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackTextParseException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); QueueOverview queueOverview = new QueueOverview(); SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); eventType = parser.next(); - while (eventType != XmlPullParser.END_TAG + while (eventType != XmlPullParser.Event.END_ELEMENT || !ELEMENT_NAME.equals(parser.getName())) { if ("count".equals(parser.getName())) { queueOverview.setUserCount(Integer.parseInt(parser.nextText())); @@ -156,12 +155,12 @@ public class QueueOverview implements ExtensionElement { eventType = parser.next(); - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } } - if (eventType != XmlPullParser.END_TAG) { + if (eventType != XmlPullParser.Event.END_ELEMENT) { // throw exception } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java index 1b3cd9123..27b2461cf 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/QueueUpdate.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * An IQ stanza that encapsulates both types of workgroup queue @@ -106,21 +105,21 @@ public class QueueUpdate implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG && "position".equals(elementName)) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "position".equals(elementName)) { try { position = Integer.parseInt(parser.nextText()); } catch (NumberFormatException nfe) { } } - else if (parser.getEventType() == XmlPullParser.START_TAG && "time".equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT && "time".equals(elementName)) { try { timeRemaining = Integer.parseInt(parser.nextText()); } catch (NumberFormatException nfe) { } } - else if (parser.getEventType() == XmlPullParser.END_TAG && "queue-status".equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && "queue-status".equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java index 91932c20e..e2786ca9b 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomInvitation.java @@ -25,13 +25,13 @@ import org.jivesoftware.smack.packet.IQ.IQChildElementXmlStringBuilder; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.EntityJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Stanza extension for {@link org.jivesoftware.smackx.workgroup.agent.InvitationRequest}. @@ -179,7 +179,7 @@ public class RoomInvitation implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) { if ("session".equals(elementName)) { invitation.sessionID = parser.getAttributeValue("", "id"); } @@ -199,7 +199,7 @@ public class RoomInvitation implements ExtensionElement { invitation.room = JidCreate.entityBareFrom(roomString); } } - else if (parser.getEventType() == XmlPullParser.END_TAG && ELEMENT_NAME.equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java index 619141fa4..7bfb1067f 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/RoomTransfer.java @@ -25,9 +25,8 @@ import org.jivesoftware.smack.packet.IQ.IQChildElementXmlStringBuilder; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.XmlStringBuilder; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * Stanza extension for {@link org.jivesoftware.smackx.workgroup.agent.TransferRequest}. @@ -175,7 +174,7 @@ public class RoomTransfer implements ExtensionElement { while (!done) { parser.next(); String elementName = parser.getName(); - if (parser.getEventType() == XmlPullParser.START_TAG) { + if (parser.getEventType() == XmlPullParser.Event.START_ELEMENT) { if ("session".equals(elementName)) { invitation.sessionID = parser.getAttributeValue("", "id"); } @@ -192,7 +191,7 @@ public class RoomTransfer implements ExtensionElement { invitation.room = parser.nextText(); } } - else if (parser.getEventType() == XmlPullParser.END_TAG && ELEMENT_NAME.equals(elementName)) { + else if (parser.getEventType() == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(elementName)) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java index e3c7cd562..4600573f1 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/SessionID.java @@ -22,9 +22,8 @@ import java.io.IOException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SessionID implements ExtensionElement { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java index 6b7b73066..d16872862 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptProvider.java @@ -26,9 +26,8 @@ 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.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * An IQProvider for transcripts. @@ -44,8 +43,8 @@ public class TranscriptProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("message")) { packets.add(PacketParserUtils.parseMessage(parser)); } @@ -53,7 +52,7 @@ public class TranscriptProvider extends IQProvider { packets.add(PacketParserUtils.parsePresence(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcript")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java index e6a4c1a5a..4d750ec7a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptSearch.java @@ -24,9 +24,8 @@ 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.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; /** * IQ stanza for retrieving the transcript search form, submitting the completed search form @@ -63,12 +62,12 @@ public class TranscriptSearch extends SimpleIQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { // Parse the packet extension PacketParserUtils.addExtensionElement(answer, parser, xmlEnvironment); } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals(ELEMENT_NAME)) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java index a8341cd02..eb701ee68 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/TranscriptsProvider.java @@ -28,10 +28,10 @@ import java.util.TimeZone; import org.jivesoftware.smack.packet.XmlEnvironment; 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.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * An IQProvider for transcripts summaries. @@ -53,13 +53,13 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("transcript")) { summaries.add(parseSummary(parser)); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcripts")) { done = true; } @@ -78,8 +78,8 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("joinTime")) { try { synchronized (UTC_FORMAT) { @@ -98,7 +98,7 @@ public class TranscriptsProvider extends IQProvider { agents = parseAgents(parser); } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("transcript")) { done = true; } @@ -116,8 +116,8 @@ public class TranscriptsProvider extends IQProvider { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("agentJID")) { agentJID = parser.nextText(); } @@ -141,7 +141,7 @@ public class TranscriptsProvider extends IQProvider { leftTime = null; } } - else if (eventType == XmlPullParser.END_TAG) { + else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("agents")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java index 74854307a..806128c56 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class UserID implements ExtensionElement { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java index 422e17c2d..4fe2fe750 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java @@ -23,10 +23,10 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.EntityBareJid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * A stanza extension that contains information about the user and agent in a diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java index db52078cd..534ddbbed 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/ChatSettings.java @@ -26,9 +26,8 @@ import java.util.List; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class ChatSettings extends IQ { @@ -128,7 +127,7 @@ public class ChatSettings extends IQ { @Override public ChatSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { - if (parser.getEventType() != XmlPullParser.START_TAG) { + if (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { throw new IllegalStateException("Parser not in proper position, or bad XML."); } @@ -136,12 +135,12 @@ public class ChatSettings extends IQ { boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "chat-setting".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "chat-setting".equals(parser.getName())) { chatSettings.addSetting(parseChatSetting(parser)); } - else if (eventType == XmlPullParser.END_TAG && ELEMENT_NAME.equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(parser.getName())) { done = true; } } @@ -156,17 +155,17 @@ public class ChatSettings extends IQ { int type = 0; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "key".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "key".equals(parser.getName())) { key = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "value".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "value".equals(parser.getName())) { value = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "type".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "type".equals(parser.getName())) { type = Integer.parseInt(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "chat-setting".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "chat-setting".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java index 0530bec32..d9f9e405c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/GenericSettings.java @@ -25,9 +25,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class GenericSettings extends IQ { @@ -88,15 +87,15 @@ public class GenericSettings extends IQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "entry".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "entry".equals(parser.getName())) { eventType = parser.next(); String name = parser.nextText(); eventType = parser.next(); String value = parser.nextText(); setting.getMap().put(name, value); } - else if (eventType == XmlPullParser.END_TAG && ELEMENT_NAME.equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && ELEMENT_NAME.equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java index 7da5a6459..10c570a45 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/OfflineSettings.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class OfflineSettings extends SimpleIQ { private String redirectURL; @@ -118,20 +117,20 @@ public class OfflineSettings extends SimpleIQ { String emailAddress = null; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "redirectPage".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "redirectPage".equals(parser.getName())) { redirectPage = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "subject".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "subject".equals(parser.getName())) { subject = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "offlineText".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "offlineText".equals(parser.getName())) { offlineText = parser.nextText(); } - else if (eventType == XmlPullParser.START_TAG && "emailAddress".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "emailAddress".equals(parser.getName())) { emailAddress = parser.nextText(); } - else if (eventType == XmlPullParser.END_TAG && "offline-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "offline-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java index d2a329bf0..5c688c959 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SearchSettings.java @@ -22,9 +22,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SearchSettings extends SimpleIQ { private String forumsLocation; @@ -87,14 +86,14 @@ public class SearchSettings extends SimpleIQ { String forums = null; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "forums".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "forums".equals(parser.getName())) { forums = parser.nextText(); } - else if ((eventType == XmlPullParser.START_TAG) && "kb".equals(parser.getName())) { + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && "kb".equals(parser.getName())) { kb = parser.nextText(); } - else if (eventType == XmlPullParser.END_TAG && "search-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "search-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java index deb7fc4dd..a7bcf0f49 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/SoundSettings.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.stringencoder.Base64; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class SoundSettings extends SimpleIQ { private String outgoingSound; @@ -76,14 +75,14 @@ public class SoundSettings extends SimpleIQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "outgoingSound".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "outgoingSound".equals(parser.getName())) { soundSettings.setOutgoingSound(parser.nextText()); } - else if ((eventType == XmlPullParser.START_TAG) && "incomingSound".equals(parser.getName())) { + else if ((eventType == XmlPullParser.Event.START_ELEMENT) && "incomingSound".equals(parser.getName())) { soundSettings.setIncomingSound(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "sound-settings".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "sound-settings".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java index 0603d6bf9..74c42bda1 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/settings/WorkgroupProperties.java @@ -23,9 +23,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.StringUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class WorkgroupProperties extends IQ { @@ -103,19 +102,19 @@ public class WorkgroupProperties extends IQ { while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG && "authRequired".equals(parser.getName())) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT && "authRequired".equals(parser.getName())) { // CHECKSTYLE:OFF props.setAuthRequired(Boolean.valueOf(parser.nextText()).booleanValue()); // CHECKSTYLE:ON } - else if (eventType == XmlPullParser.START_TAG && "email".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "email".equals(parser.getName())) { props.setEmail(parser.nextText()); } - else if (eventType == XmlPullParser.START_TAG && "name".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.START_ELEMENT && "name".equals(parser.getName())) { props.setFullName(parser.nextText()); } - else if (eventType == XmlPullParser.END_TAG && "workgroup-properties".equals(parser.getName())) { + else if (eventType == XmlPullParser.Event.END_ELEMENT && "workgroup-properties".equals(parser.getName())) { done = true; } } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java index b17da1211..1d68c396c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/util/MetaDataUtils.java @@ -24,10 +24,10 @@ import java.util.List; import java.util.Map; import org.jivesoftware.smack.util.StringUtils; -import org.jivesoftware.smackx.workgroup.MetaData; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.workgroup.MetaData; /** * Utility class for meta-data parsing and writing. @@ -46,18 +46,18 @@ public class MetaDataUtils { * @throws IOException if an error occurs while parsing the XML. */ public static Map> parseMetaData(XmlPullParser parser) throws XmlPullParserException, IOException { - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); // If correctly positioned on an opening meta-data tag, parse meta-data. - if ((eventType == XmlPullParser.START_TAG) + if ((eventType == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(MetaData.ELEMENT_NAME) && parser.getNamespace().equals(MetaData.NAMESPACE)) { Map> metaData = new Hashtable<>(); - eventType = parser.nextTag(); + eventType = parser.next(); // Keep parsing until we've gotten to end of meta-data. - while ((eventType != XmlPullParser.END_TAG) + while ((eventType != XmlPullParser.Event.END_ELEMENT) || !parser.getName().equals(MetaData.ELEMENT_NAME)) { String name = parser.getAttributeValue(0); String value = parser.nextText(); @@ -72,7 +72,7 @@ public class MetaDataUtils { metaData.put(name, values); } - eventType = parser.nextTag(); + eventType = parser.next(); } return metaData; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java index 719bbe5bf..a2af202a2 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/provider/MessageEventProvider.java @@ -21,12 +21,11 @@ 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.xevent.packet.MessageEvent; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - /** * * The MessageEventProvider parses Message Event packets. @@ -49,8 +48,8 @@ public class MessageEventProvider extends ExtensionElementProvider MessageEvent messageEvent = new MessageEvent(); boolean done = false; while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("id")) messageEvent.setStanzaId(parser.nextText()); if (parser.getName().equals(MessageEvent.COMPOSING)) @@ -61,7 +60,7 @@ public class MessageEventProvider extends ExtensionElementProvider messageEvent.setDisplayed(true); if (parser.getName().equals(MessageEvent.OFFLINE)) messageEvent.setOffline(true); - } else if (eventType == XmlPullParser.END_TAG) { + } else if (eventType == XmlPullParser.Event.END_ELEMENT) { if (parser.getName().equals("x")) { done = true; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java index f5e7b2cc0..d471e0357 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java @@ -23,13 +23,13 @@ import java.util.ArrayList; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.xroster.RemoteRosterEntry; import org.jivesoftware.smackx.xroster.packet.RosterExchange; import org.jxmpp.jid.Jid; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * @@ -58,8 +58,8 @@ public class RosterExchangeProvider extends ExtensionElementProvider groupsName = new ArrayList<>(); while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { + XmlPullParser.Event eventType = parser.next(); + if (eventType == XmlPullParser.Event.START_ELEMENT) { if (parser.getName().equals("item")) { // Reset this variable since they are optional for each item groupsName = new ArrayList<>(); @@ -70,7 +70,7 @@ public class RosterExchangeProvider extends ExtensionElementProvider preKeys = new HashMap<>(); while (!stop) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: + final int attributeCount = parser.getAttributeCount(); // if (name.equals(SIGNED_PRE_KEY_PUB)) { - for (int i = 0; i < parser.getAttributeCount(); i++) { + for (int i = 0; i < attributeCount; i++) { if (parser.getAttributeName(i).equals(SIGNED_PRE_KEY_ID)) { int id = Integer.parseInt(parser.getAttributeValue(i)); signedPreKey = parser.nextText(); @@ -84,7 +82,7 @@ public class OmemoBundleVAxolotlProvider extends ExtensionElementProvider else if (inPreKeys && name.equals(PRE_KEY_PUB)) { - for (int i = 0; i < parser.getAttributeCount(); i++) { + for (int i = 0; i < attributeCount; i++) { if (parser.getAttributeName(i).equals(PRE_KEY_ID)) { preKeys.put(Integer.parseInt(parser.getAttributeValue(i)), parser.nextText()); @@ -92,11 +90,14 @@ public class OmemoBundleVAxolotlProvider extends ExtensionElementProvider deviceListIds = new HashSet<>(); boolean stop = false; while (!stop) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: if (name.equals(DEVICE)) { for (int i = 0; i < parser.getAttributeCount(); i++) { if (parser.getAttributeName(i).equals(ID)) { @@ -59,11 +56,14 @@ public class OmemoDeviceListVAxolotlProvider extends ExtensionElementProvider payload = new LinkedList<>(); outerloop: while (true) { - int tag = parser.next(); + XmlPullParser.Event tag = parser.next(); String name = parser.getName(); switch (tag) { - case START_TAG: + case START_ELEMENT: switch (name) { case OpenPgpContentElement.ELEM_TIME: @@ -112,12 +110,11 @@ public abstract class OpenPgpContentElementProvider provider = ProviderManager.getExtensionProvider(pname, pns); if (provider == null) { @@ -127,15 +124,19 @@ public abstract class OpenPgpContentElementProvider { @@ -43,12 +41,12 @@ public final class PublicKeysListElementProvider extends ExtensionElementProvide while (true) { - int tag = parser.nextTag(); - String name = parser.getName(); + XmlPullParser.TagEvent tag = parser.nextTag(); + String name; switch (tag) { - case START_TAG: - + case START_ELEMENT: + name = parser.getName(); if (PublicKeysListElement.PubkeyMetadataElement.ELEMENT.equals(name)) { String finger = parser.getAttributeValue(null, PublicKeysListElement.PubkeyMetadataElement.ATTR_V4_FINGERPRINT); @@ -60,11 +58,16 @@ public final class PublicKeysListElementProvider extends ExtensionElementProvide } break; - case END_TAG: - + case END_ELEMENT: + name = parser.getName(); if (name.equals(PublicKeysListElement.ELEMENT)) { return builder.build(); } + break; + + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } } diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java index 138da4e3a..6f702131e 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SecretkeyElementProvider.java @@ -21,10 +21,10 @@ import java.nio.charset.Charset; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smackx.ox.element.SecretkeyElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SecretkeyElement; /** * {@link ExtensionElementProvider} implementation for the {@link SecretkeyElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java index 8a0c6d5df..4f971af39 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SignElementProvider.java @@ -22,10 +22,10 @@ import java.util.logging.Logger; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.StringUtils; -import org.jivesoftware.smackx.ox.element.SignElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SignElement; /** * {@link org.jivesoftware.smack.provider.ExtensionElementProvider} implementation for the {@link SignElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java index 3187e0473..74ebc9b88 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/provider/SigncryptElementProvider.java @@ -20,10 +20,10 @@ import java.io.IOException; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smackx.ox.element.SigncryptElement; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smackx.ox.element.SigncryptElement; /** * {@link org.jivesoftware.smack.provider.ExtensionElementProvider} implementation for the {@link SigncryptElement}. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java index 158ea7368..61f91cb7c 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/abstr/AbstractOpenPgpStore.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Observable; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.callback.SecretKeyPassphraseCallback; import org.jivesoftware.smackx.ox.exception.MissingUserIdOnKeyException; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java index 3935dd44a..6e8f69ea3 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpKeyStore.java @@ -26,6 +26,7 @@ import java.util.Map; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpKeyStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpKeyStore; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java index 1a1655601..9d20e2cfa 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpMetadataStore.java @@ -33,6 +33,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpMetadataStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpMetadataStore; import org.jivesoftware.smackx.ox.util.Util; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java index e92c5153f..20bcfee39 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpStore.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.ox.store.filebased; import java.io.File; import org.jivesoftware.smack.util.Objects; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java index 38c56e95e..433cd8d95 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/store/filebased/FileBasedOpenPgpTrustStore.java @@ -30,6 +30,7 @@ import java.util.logging.Logger; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.FileUtils; + import org.jivesoftware.smackx.ox.store.abstr.AbstractOpenPgpTrustStore; import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore; import org.jivesoftware.smackx.ox.util.Util; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java index 9880facf1..b19257ac6 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java @@ -29,6 +29,7 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.StanzaError; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.ox.OpenPgpManager; import org.jivesoftware.smackx.ox.element.PubkeyElement; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java index 13fe39a59..4681f0be9 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/SecretKeyBackupHelper.java @@ -22,6 +22,7 @@ import java.security.SecureRandom; import java.util.Set; import org.jivesoftware.smack.util.stringencoder.Base64; + import org.jivesoftware.smackx.ox.crypto.OpenPgpProvider; import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.exception.InvalidBackupCodeException; diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java index 591ead494..987473648 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManager.java @@ -31,6 +31,8 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.chat2.ChatManager; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.hints.element.StoreHint; @@ -48,7 +50,6 @@ import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.pgpainless.decryption_verification.OpenPgpMetadata; import org.pgpainless.key.OpenPgpV4Fingerprint; -import org.xmlpull.v1.XmlPullParserException; /** * Entry point of Smacks API for XEP-0374: OpenPGP for XMPP: Instant Messaging. diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java index 55dd9c2fd..42362979a 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox_im/OxMessageListener.java @@ -17,6 +17,7 @@ package org.jivesoftware.smackx.ox_im; import org.jivesoftware.smack.packet.Message; + import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.element.OpenPgpElement; import org.jivesoftware.smackx.ox.element.SigncryptElement; diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java index 2db1c50de..9d42f57fa 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpElementTest.java @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.ox; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNotNull; import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import java.util.ArrayList; @@ -32,6 +33,9 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.ox.element.CryptElement; import org.jivesoftware.smackx.ox.element.OpenPgpElement; import org.jivesoftware.smackx.ox.element.SignElement; @@ -39,12 +43,10 @@ import org.jivesoftware.smackx.ox.element.SigncryptElement; import org.jivesoftware.smackx.ox.provider.OpenPgpContentElementProvider; import org.jivesoftware.smackx.ox.provider.OpenPgpElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; public class OpenPgpElementTest extends SmackTestSuite { @@ -174,12 +176,13 @@ public class OpenPgpElementTest extends SmackTestSuite { assertEquals(payload.get(0), element.getExtension(Message.Body.ELEMENT, Message.Body.NAMESPACE)); } - @Test(expected = XmlPullParserException.class) + @Test public void openPgpContentElementProvider_invalidElementTest() throws IOException, XmlPullParserException { String invalidElementXML = "" + "This is a secret message." + ""; - OpenPgpContentElementProvider.parseOpenPgpContentElement(invalidElementXML); + assertThrows(XmlPullParserException.class, () -> + OpenPgpContentElementProvider.parseOpenPgpContentElement(invalidElementXML)); } } diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java index efe7ca23f..6be88ac0f 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/OpenPgpStoreTest.java @@ -21,6 +21,7 @@ import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertNotNull; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.IOException; @@ -37,6 +38,7 @@ import java.util.Map; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.callback.SecretKeyPassphraseCallback; import org.jivesoftware.smackx.ox.exception.MissingUserIdOnKeyException; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; @@ -199,18 +201,20 @@ public class OpenPgpStoreTest extends SmackTestSuite { openPgpStoreInstance1.deleteSecretKeyRing(alice, fingerprint); } - @Test(expected = MissingUserIdOnKeyException.class) + @Test public void t04_key_wrongBareJidOnSecretKeyImportTest() throws PGPException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException, IOException, MissingUserIdOnKeyException { PGPSecretKeyRing secretKeys = openPgpStoreInstance1.generateKeyRing(alice).getSecretKeys(); - openPgpStoreInstance1.importSecretKey(bob, secretKeys); + assertThrows(MissingUserIdOnKeyException.class, () -> + openPgpStoreInstance1.importSecretKey(bob, secretKeys)); } - @Test(expected = MissingUserIdOnKeyException.class) + @Test public void t05_key_wrongBareJidOnPublicKeyImportTest() throws PGPException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException, IOException, MissingUserIdOnKeyException { PGPPublicKeyRing publicKeys = openPgpStoreInstance1.generateKeyRing(alice).getPublicKeys(); - openPgpStoreInstance1.importPublicKey(bob, publicKeys); + assertThrows(MissingUserIdOnKeyException.class, () -> + openPgpStoreInstance1.importPublicKey(bob, publicKeys)); } @Test diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java index f7fdc7fd9..65c639971 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PainlessOpenPgpProviderTest.java @@ -34,6 +34,8 @@ import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.ox.crypto.OpenPgpElementAndMetadata; import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.CryptElement; @@ -46,14 +48,13 @@ import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; import org.bouncycastle.openpgp.PGPException; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.pgpainless.key.OpenPgpV4Fingerprint; import org.pgpainless.key.collection.PGPKeyRing; import org.pgpainless.key.protection.UnprotectedKeysProtector; -import org.xmlpull.v1.XmlPullParserException; public class PainlessOpenPgpProviderTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java index 9581abb41..3a42a8d28 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubSubDelegateTest.java @@ -19,10 +19,11 @@ package org.jivesoftware.smackx.ox; import static junit.framework.TestCase.assertEquals; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; import org.bouncycastle.openpgp.PGPException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.pgpainless.key.OpenPgpV4Fingerprint; public class PubSubDelegateTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java index 1d1bb6837..f619d5c4a 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PubkeyElementTest.java @@ -26,12 +26,13 @@ import java.util.Date; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.PubkeyElement; import org.jivesoftware.smackx.ox.provider.PubkeyElementProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; -import org.xmlpull.v1.XmlPullParser; public class PubkeyElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java index fc5364071..0b99d7edd 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/PublicKeysListElementTest.java @@ -23,14 +23,15 @@ import java.util.Date; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.PublicKeysListElement; import org.jivesoftware.smackx.ox.provider.PublicKeysListElementProvider; import org.bouncycastle.openpgp.PGPException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; import org.pgpainless.key.OpenPgpV4Fingerprint; -import org.xmlpull.v1.XmlPullParser; public class PublicKeysListElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java index efc2b5712..92d8ad92e 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretKeyBackupHelperTest.java @@ -30,6 +30,7 @@ import java.util.Collections; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; + import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.exception.InvalidBackupCodeException; @@ -42,7 +43,7 @@ import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPSecretKeyRing; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.impl.JidCreate; import org.pgpainless.PGPainless; diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java index 5eddd9109..f6d1edb77 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox/SecretkeyElementTest.java @@ -24,11 +24,12 @@ import java.util.Arrays; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.TestUtils; +import org.jivesoftware.smack.xml.XmlPullParser; + import org.jivesoftware.smackx.ox.element.SecretkeyElement; import org.jivesoftware.smackx.ox.provider.SecretkeyElementProvider; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; +import org.junit.jupiter.api.Test; public class SecretkeyElementTest extends SmackTestSuite { diff --git a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java index 28f09646c..c9733dc12 100644 --- a/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java +++ b/smack-openpgp/src/test/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingManagerTest.java @@ -37,6 +37,8 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.test.util.FileTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; +import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.eme.element.ExplicitMessageEncryptionElement; import org.jivesoftware.smackx.ox.OpenPgpContact; import org.jivesoftware.smackx.ox.OpenPgpManager; @@ -51,11 +53,10 @@ import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; import org.bouncycastle.openpgp.PGPException; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.JidTestUtil; import org.pgpainless.decryption_verification.OpenPgpMetadata; -import org.xmlpull.v1.XmlPullParserException; public class OXInstantMessagingManagerTest extends SmackTestSuite { diff --git a/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java b/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java index e9d91f6ef..d98b2fdeb 100644 --- a/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java +++ b/smack-resolver-minidns-dox/src/test/java/org/jivesoftware/smackx/dox/resolver/minidns/DnsOverXmppMiniDnsResolverTest.java @@ -16,15 +16,15 @@ */ package org.jivesoftware.smackx.dox.resolver.minidns; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.net.InetAddress; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.minidns.DnsCache; import org.minidns.DnsClient; import org.minidns.MiniDnsFuture; diff --git a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java index 2fd6feaac..b0aa9c170 100644 --- a/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java +++ b/smack-sasl-javax/src/test/java/org/jivesoftware/smack/sasl/javax/SASLDigestMD5Test.java @@ -21,7 +21,7 @@ import java.io.UnsupportedEncodingException; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class SASLDigestMD5Test extends DigestMd5SaslTest { diff --git a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java index 7933aff63..6ca64849b 100644 --- a/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java +++ b/smack-sasl-provided/src/test/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Test.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Florian Schmaus + * Copyright 2014-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ import java.io.UnsupportedEncodingException; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.sasl.DigestMd5SaslTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class SASLDigestMD5Test extends DigestMd5SaslTest { diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java index eff90c7ea..747e1420e 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/ParseStreamManagement.java @@ -29,9 +29,8 @@ import org.jivesoftware.smack.sm.packet.StreamManagement.Enabled; import org.jivesoftware.smack.sm.packet.StreamManagement.Failed; import org.jivesoftware.smack.sm.packet.StreamManagement.Resumed; import org.jivesoftware.smack.util.ParserUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; public class ParseStreamManagement { @@ -53,9 +52,9 @@ public class ParseStreamManagement { List textElements = new ArrayList<>(4); outerloop: while (true) { - int event = parser.next(); + XmlPullParser.Event event = parser.next(); switch (event) { - case XmlPullParser.START_TAG: + case START_ELEMENT: name = parser.getName(); String namespace = parser.getNamespace(); if (StanzaError.ERROR_CONDITION_AND_TEXT_NAMESPACE.equals(namespace)) { @@ -69,12 +68,15 @@ public class ParseStreamManagement { } } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: name = parser.getName(); if (Failed.ELEMENT.equals(name)) { break outerloop; } break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } } ParserUtils.assertAtEndTag(parser); diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java index 27ad71d1f..66f3349be 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/StreamManagementStreamFeatureProvider.java @@ -19,8 +19,7 @@ package org.jivesoftware.smack.sm.provider; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.sm.packet.StreamManagement.StreamManagementFeature; - -import org.xmlpull.v1.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParser; public class StreamManagementStreamFeatureProvider extends ExtensionElementProvider { diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java index a44aa7a0a..77499c68b 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java @@ -117,12 +117,13 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.TLSUtils; import org.jivesoftware.smack.util.XmlStringBuilder; import org.jivesoftware.smack.util.dns.HostAddress; +import org.jivesoftware.smack.xml.SmackXmlParser; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Resourcepart; import org.jxmpp.stringprep.XmppStringprepException; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Creates a socket connection to an XMPP server. This is the default connection @@ -851,7 +852,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { */ void openStream() throws SmackException, InterruptedException, XmlPullParserException { sendStreamOpen(); - packetReader.parser = PacketParserUtils.newXmppParser(reader); + packetReader.parser = SmackXmlParser.newXmlParser(reader); } protected class PacketReader { @@ -898,10 +899,10 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { try { openStream(); initialStreamOpenSend = true; - int eventType = parser.getEventType(); + XmlPullParser.Event eventType = parser.getEventType(); while (!done) { switch (eventType) { - case XmlPullParser.START_TAG: + case START_ELEMENT: final String name = parser.getName(); switch (name) { case Message.ELEMENT: @@ -1069,7 +1070,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { break; } break; - case XmlPullParser.END_TAG: + case END_ELEMENT: final String endTagName = parser.getName(); if ("stream".equals(endTagName)) { if (!parser.getNamespace().equals("http://etherx.jabber.org/streams")) { @@ -1105,11 +1106,14 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { } } break; - case XmlPullParser.END_DOCUMENT: + case END_DOCUMENT: // END_DOCUMENT only happens in an error case, as otherwise we would see a // closing stream element before. throw new SmackException.SmackMessageException( "Parser got END_DOCUMENT event. This could happen e.g. if the server closed the connection without sending a closing stream element"); + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; } eventType = parser.next(); } diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java index 8dcdd63fa..55e950bdd 100644 --- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java +++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XmppNioTcpConnection.java @@ -91,6 +91,8 @@ import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.UTF8; import org.jivesoftware.smack.util.XmlStringBuilder; import org.jivesoftware.smack.util.dns.HostAddress; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.Jid; @@ -102,8 +104,6 @@ import org.jxmpp.xml.splitter.XmlPrettyPrinter; import org.jxmpp.xml.splitter.XmlPrinter; import org.jxmpp.xml.splitter.XmppElementCallback; import org.jxmpp.xml.splitter.XmppXmlSplitter; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; /** * Represents and manages a client connection to an XMPP server via TCP. diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java index 59dcd0203..e984dd7f2 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/sm/provider/ParseStreamManagementTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2014 Vyacheslav Blinov, 2017-2018 Florian Schmaus + * Copyright 2014 Vyacheslav Blinov, 2017-2019 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,9 @@ */ package org.jivesoftware.smack.sm.provider; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.List; @@ -31,11 +28,11 @@ import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaErrorTextElement; import org.jivesoftware.smack.sm.packet.StreamManagement; import org.jivesoftware.smack.util.PacketParserUtils; +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import com.jamesmurty.utils.XMLBuilder; -import org.junit.Test; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; +import org.junit.jupiter.api.Test; public class ParseStreamManagementTest { private static final Properties outputProperties = initOutputProperties(); @@ -58,11 +55,11 @@ public class ParseStreamManagementTest { StreamManagement.Enabled enabledPacket = ParseStreamManagement.enabled( PacketParserUtils.getParserFor(enabledStanza)); - assertThat(enabledPacket, is(notNullValue())); - assertThat(enabledPacket.getId(), equalTo(stanzaID)); - assertThat(enabledPacket.getLocation(), equalTo(location)); - assertThat(enabledPacket.isResumeSet(), equalTo(resume)); - assertThat(enabledPacket.getMaxResumptionTime(), equalTo(max)); + assertNotNull(enabledPacket); + assertEquals(enabledPacket.getId(), stanzaID); + assertEquals(location, enabledPacket.getLocation()); + assertEquals(resume, enabledPacket.isResumeSet()); + assertEquals(max, enabledPacket.getMaxResumptionTime()); } @@ -84,7 +81,7 @@ public class ParseStreamManagementTest { StreamManagement.Failed failedPacket = ParseStreamManagement.failed( PacketParserUtils.getParserFor(failedStanza)); - assertThat(failedPacket, is(notNullValue())); + assertNotNull(failedPacket); assertTrue(failedPacket.getStanzaErrorCondition() == null); } @@ -100,7 +97,7 @@ public class ParseStreamManagementTest { StreamManagement.Failed failedPacket = ParseStreamManagement.failed( PacketParserUtils.getParserFor(failedStanza)); - assertThat(failedPacket, is(notNullValue())); + assertNotNull(failedPacket); assertTrue(failedPacket.getStanzaErrorCondition() == errorCondition); } @@ -142,9 +139,9 @@ public class ParseStreamManagementTest { StreamManagement.Resumed resumedPacket = ParseStreamManagement.resumed( PacketParserUtils.getParserFor(resumedStanza)); - assertThat(resumedPacket, is(notNullValue())); - assertThat(resumedPacket.getHandledCount(), equalTo(handledPackets)); - assertThat(resumedPacket.getPrevId(), equalTo(previousID)); + assertNotNull(resumedPacket); + assertEquals(handledPackets, resumedPacket.getHandledCount()); + assertEquals(previousID, resumedPacket.getPrevId()); } @Test @@ -159,8 +156,8 @@ public class ParseStreamManagementTest { StreamManagement.AckAnswer acknowledgementPacket = ParseStreamManagement.ackAnswer( PacketParserUtils.getParserFor(ackStanza)); - assertThat(acknowledgementPacket, is(notNullValue())); - assertThat(acknowledgementPacket.getHandledCount(), equalTo(handledPackets)); + assertNotNull(acknowledgementPacket); + assertEquals(handledPackets, acknowledgementPacket.getHandledCount()); } private static Properties initOutputProperties() { diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java index 1053f2645..59f25f40d 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/PacketWriterTest.java @@ -16,24 +16,31 @@ */ package org.jivesoftware.smack.tcp; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; import java.io.Writer; +import java.lang.reflect.Field; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.atomic.AtomicReference; +import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.tcp.XMPPTCPConnection.PacketWriter; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class PacketWriterTest { + + private static final Reader DUMMY_READER = new StringReader(""); + private volatile boolean shutdown; private volatile boolean prematureUnblocked; @@ -47,10 +54,22 @@ public class PacketWriterTest { * @throws BrokenBarrierException * @throws NotConnectedException * @throws XmppStringprepException + * @throws SecurityException + * @throws NoSuchFieldException + * @throws IllegalAccessException + * @throws IllegalArgumentException */ @Test - public void shouldBlockAndUnblockTest() throws InterruptedException, BrokenBarrierException, NotConnectedException, XmppStringprepException { + public void shouldBlockAndUnblockTest() throws InterruptedException, BrokenBarrierException, NotConnectedException, XmppStringprepException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException { XMPPTCPConnection connection = new XMPPTCPConnection("user", "pass", "example.org"); + + // Get the protected "Reader reader" field from AbstractXMPPConnection and set it to a dummy Reader, + // as otherwise it will be null when we perform the writer threads init() which will make the StAX parser + // to throw an exception. + Field readerField = AbstractXMPPConnection.class.getDeclaredField("reader"); + readerField.setAccessible(true); + readerField.set(connection, DUMMY_READER); + final PacketWriter pw = connection.packetWriter; BlockingStringWriter blockingStringWriter = new BlockingStringWriter(); connection.setWriter(blockingStringWriter); @@ -85,6 +104,7 @@ public class PacketWriterTest { } catch (BrokenBarrierException | InterruptedException e) { unexpectedThreadExceptionReference.set(e); + } try { @@ -126,7 +146,7 @@ public class PacketWriterTest { fail("Unexpected thread exception: " + unexpectedThreadException); } - assertNotNull("Did not encounter expected exception on sendStreamElement()", expectedThreadExceptionReference.get()); + assertNotNull(expectedThreadExceptionReference.get(), "Did not encounter expected exception on sendStreamElement()"); } finally { blockingStringWriter.unblock(); diff --git a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java index 1b56187e6..478e4a691 100644 --- a/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java +++ b/smack-tcp/src/test/java/org/jivesoftware/smack/tcp/TcpInitializerTest.java @@ -16,11 +16,11 @@ */ package org.jivesoftware.smack.tcp; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TcpInitializerTest { diff --git a/smack-xmlparser-stax/build.gradle b/smack-xmlparser-stax/build.gradle new file mode 100644 index 000000000..03c727630 --- /dev/null +++ b/smack-xmlparser-stax/build.gradle @@ -0,0 +1,7 @@ +description = """\ +Smack XML parser using Stax.""" + +dependencies { + compile project(':smack-xmlparser') + testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java new file mode 100644 index 000000000..56542fc97 --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParser.java @@ -0,0 +1,301 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.stax; + +import java.io.IOException; + +import javax.xml.XMLConstants; +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.Location; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +public final class StaxXmlPullParser implements XmlPullParser { + + private final XMLStreamReader xmlStreamReader; + + private int depth; + + StaxXmlPullParser(XMLStreamReader xmlStreamReader) { + this.xmlStreamReader = xmlStreamReader; + } + + @Override + public Object getProperty(String name) { + return xmlStreamReader.getProperty(name); + } + + @Override + public String getInputEncoding() { + return xmlStreamReader.getEncoding(); + } + + @Override + public int getNamespaceCount() { + return xmlStreamReader.getNamespaceCount(); + } + + @Override + public String getNamespacePrefix(int pos) { + return xmlStreamReader.getNamespacePrefix(pos); + } + + @Override + public String getNamespaceUri(int pos) { + return xmlStreamReader.getNamespaceURI(pos); + } + + @Override + public String getNamespace(String prefix) { + if (prefix == null) { + prefix = XMLConstants.DEFAULT_NS_PREFIX; + } + NamespaceContext namespaceContext = xmlStreamReader.getNamespaceContext(); + return namespaceContext.getNamespaceURI(prefix); + } + + @Override + public int getDepth() { + return depth; + } + + @Override + public String getPositionDescription() { + Location location = xmlStreamReader.getLocation(); + return location.toString(); + } + + @Override + public int getLineNumber() { + Location location = xmlStreamReader.getLocation(); + return location.getLineNumber(); + } + + @Override + public int getColumnNumber() { + Location location = xmlStreamReader.getLocation(); + return location.getColumnNumber(); + } + + @Override + public boolean isWhiteSpace() { + return xmlStreamReader.isWhiteSpace(); + } + + @Override + public String getText() { + return xmlStreamReader.getText(); + } + + @Override + public String getNamespace() { + NamespaceContext namespaceContext = xmlStreamReader.getNamespaceContext(); + String prefix = getPrefix(); + return namespaceContext.getNamespaceURI(prefix); + } + + @Override + public String getName() { + QName qname = getQName(); + return qname.getLocalPart(); + } + + @Override + public QName getQName() { + return xmlStreamReader.getName(); + } + + @Override + public String getPrefix() { + return xmlStreamReader.getPrefix(); + } + + @Override + public int getAttributeCount() { + return xmlStreamReader.getAttributeCount(); + } + + @Override + public String getAttributeNamespace(int index) { + return xmlStreamReader.getAttributeNamespace(index); + } + + @Override + public String getAttributeName(int index) { + QName qname = getAttributeQName(index); + if (qname == null) { + return null; + } + return qname.getLocalPart(); + } + + @Override + public QName getAttributeQName(int index) { + return xmlStreamReader.getAttributeName(index); + } + + @Override + public String getAttributePrefix(int index) { + return xmlStreamReader.getAttributePrefix(index); + } + + @Override + public String getAttributeType(int index) { + return xmlStreamReader.getAttributeType(index); + } + + @Override + public String getAttributeValue(int index) { + return xmlStreamReader.getAttributeValue(index); + } + + @Override + public String getAttributeValue(String namespace, String name) { + String namespaceURI = namespace; + String localName = name; + return xmlStreamReader.getAttributeValue(namespaceURI, localName); + } + + @Override + public Event getEventType() { + int staxEventInt = xmlStreamReader.getEventType(); + return staxEventIntegerToEvent(staxEventInt); + } + + private boolean delayedDepthDecrement; + + @Override + public Event next() throws XmlPullParserException { + preNextEvent(); + + int staxEventInt; + try { + staxEventInt = xmlStreamReader.next(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + Event event = staxEventIntegerToEvent(staxEventInt); + switch (event) { + case START_ELEMENT: + depth++; + break; + case END_ELEMENT: + delayedDepthDecrement = true; + break; + default: + // Catch all for incomplete switch (MissingCasesInEnumSwitch) statement. + break; + } + return event; + } + + @Override + public String nextText() throws IOException, XmlPullParserException { + final String nextText; + try { + nextText = xmlStreamReader.getElementText(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + // XMLStreamReader.getElementText() will forward to the next END_ELEMENT, hence we need to set + // delayedDepthDecrement to true. + delayedDepthDecrement = true; + + return nextText; + } + + @Override + public TagEvent nextTag() throws IOException, XmlPullParserException { + preNextEvent(); + + int staxEventInt; + try { + staxEventInt = xmlStreamReader.nextTag(); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + + switch (staxEventInt) { + case XMLStreamConstants.START_ELEMENT: + depth++; + return TagEvent.START_ELEMENT; + case XMLStreamConstants.END_ELEMENT: + delayedDepthDecrement = true; + return TagEvent.END_ELEMENT; + default: + throw new AssertionError(); + } + } + + private void preNextEvent() { + if (delayedDepthDecrement) { + depth--; + delayedDepthDecrement = false; + assert depth >= 0; + } + } + + private static Event staxEventIntegerToEvent(int staxEventInt) { + switch (staxEventInt) { + case XMLStreamConstants.START_ELEMENT: + return Event.START_ELEMENT; + case XMLStreamConstants.END_ELEMENT: + return Event.END_ELEMENT; + case XMLStreamConstants.PROCESSING_INSTRUCTION: + return Event.PROCESSING_INSTRUCTION; + case XMLStreamConstants.CHARACTERS: + return Event.TEXT_CHARACTERS; + case XMLStreamConstants.COMMENT: + return Event.COMMENT; + case XMLStreamConstants.SPACE: + return Event.IGNORABLE_WHITESPACE; + case XMLStreamConstants.START_DOCUMENT: + return Event.START_DOCUMENT; + case XMLStreamConstants.END_DOCUMENT: + return Event.END_DOCUMENT; + case XMLStreamConstants.ENTITY_REFERENCE: + return Event.ENTITY_REFERENCE; + case XMLStreamConstants.ATTRIBUTE: + return Event.OTHER; + case XMLStreamConstants.DTD: + return Event.OTHER; + case XMLStreamConstants.CDATA: + return Event.OTHER; + case XMLStreamConstants.NAMESPACE: + return Event.OTHER; + case XMLStreamConstants.NOTATION_DECLARATION: + return Event.OTHER; + case XMLStreamConstants.ENTITY_DECLARATION: + return Event.OTHER; + default: + throw new IllegalArgumentException("Unknown Stax event integer: " + staxEventInt); + } + } + + @Override + public boolean supportsRoundtrip() { + // TODO: Is there a StAX parser implementation which does support roundtrip? + return false; + } +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java new file mode 100644 index 000000000..1806bbbee --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/StaxXmlPullParserFactory.java @@ -0,0 +1,50 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.stax; + +import java.io.Reader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; + +public class StaxXmlPullParserFactory implements XmlPullParserFactory { + + private static final XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory(); + + static { + // XPP3 appears to coalescing hence we need to configure our StAX parser to also return all available text on + // getText(). + xmlInputFactory.setProperty(XMLInputFactory.IS_COALESCING, true); + // Internal and external entity references are prohibited in XMPP (RFC 6120 § 11.1). + xmlInputFactory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false); + } + + @Override + public StaxXmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException { + XMLStreamReader xmlStreamReader; + try { + xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader); + } catch (XMLStreamException e) { + throw new XmlPullParserException(e); + } + return new StaxXmlPullParser(xmlStreamReader); + } +} diff --git a/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java new file mode 100644 index 000000000..23131b25d --- /dev/null +++ b/smack-xmlparser-stax/src/main/java/org/jivesoftware/smack/xml/stax/package-info.java @@ -0,0 +1,23 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Classes for XML handling using StAX (Streaming API for XML, JSR 173). + * + * @see Streaming API for XML + */ +package org.jivesoftware.smack.xml.stax; diff --git a/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory b/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory new file mode 100644 index 000000000..b61383e2b --- /dev/null +++ b/smack-xmlparser-stax/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory @@ -0,0 +1 @@ +org.jivesoftware.smack.xml.stax.StaxXmlPullParserFactory diff --git a/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java b/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java new file mode 100644 index 000000000..21cc355f2 --- /dev/null +++ b/smack-xmlparser-stax/src/test/java/org/jivesoftware/smack/xml/stax/StaxParserTest.java @@ -0,0 +1,36 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.stax; + +import java.io.IOException; +import java.io.StringReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +import org.junit.jupiter.api.Test; + +public class StaxParserTest { + + @Test + public void factoryTest() throws XmlPullParserException, IOException { + StaxXmlPullParserFactory staxXmlPullParserFactory = new StaxXmlPullParserFactory(); + XmlPullParser parser = staxXmlPullParserFactory.newXmlPullParser(new StringReader("")); + parser.next(); + } + +} diff --git a/smack-xmlparser-xpp3/build.gradle b/smack-xmlparser-xpp3/build.gradle new file mode 100644 index 000000000..fb647f0bc --- /dev/null +++ b/smack-xmlparser-xpp3/build.gradle @@ -0,0 +1,13 @@ +description = """\ +Smack XML parser using XPP3.""" + +ext { + xpp3Version = "1.1.4c" +} + +dependencies { + api "xpp3:xpp3_min:$xpp3Version" + implementation "xpp3:xpp3:$xpp3Version" + api project(':smack-xmlparser') + testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java new file mode 100644 index 000000000..a343276bf --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParser.java @@ -0,0 +1,302 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.xpp3; + +import java.io.IOException; + +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +public final class Xpp3XmlPullParser implements XmlPullParser { + + private final org.xmlpull.v1.XmlPullParser xpp3XmlPullParser; + + public Xpp3XmlPullParser(org.xmlpull.v1.XmlPullParser xpp3XmlPullParser) { + this.xpp3XmlPullParser = xpp3XmlPullParser; + } + + @Override + public Object getProperty(String name) { + return xpp3XmlPullParser.getProperty(name); + } + + @Override + public String getInputEncoding() { + return xpp3XmlPullParser.getInputEncoding(); + } + + @Override + public int getNamespaceCount() throws XmlPullParserException { + int depth = xpp3XmlPullParser.getDepth(); + try { + return xpp3XmlPullParser.getNamespaceCount(depth); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespacePrefix(int pos) throws XmlPullParserException { + try { + return xpp3XmlPullParser.getNamespacePrefix(pos); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespaceUri(int pos) throws XmlPullParserException { + try { + return xpp3XmlPullParser.getNamespaceUri(pos); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getNamespace(String prefix) { + return xpp3XmlPullParser.getNamespace(prefix); + } + + @Override + public int getDepth() { + return xpp3XmlPullParser.getDepth(); + } + + @Override + public String getPositionDescription() { + return xpp3XmlPullParser.getPositionDescription(); + } + + @Override + public int getLineNumber() { + return xpp3XmlPullParser.getLineNumber(); + } + + @Override + public int getColumnNumber() { + return xpp3XmlPullParser.getColumnNumber(); + } + + @Override + public boolean isWhiteSpace() throws XmlPullParserException { + try { + return xpp3XmlPullParser.isWhitespace(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public String getText() { + return xpp3XmlPullParser.getText(); + } + + @Override + public String getNamespace() { + return xpp3XmlPullParser.getNamespace(); + } + + @Override + public String getName() { + return xpp3XmlPullParser.getName(); + } + + @Override + public QName getQName() { + String localpart = xpp3XmlPullParser.getName(); + String prefix = xpp3XmlPullParser.getPrefix(); + prefix = nullValueToDefaultPrefix(prefix); + String namespace = xpp3XmlPullParser.getNamespace(); + + return new QName(namespace, localpart, prefix); + } + + @Override + public String getPrefix() { + return xpp3XmlPullParser.getPrefix(); + } + + @Override + public int getAttributeCount() { + return xpp3XmlPullParser.getAttributeCount(); + } + + @Override + public String getAttributeNamespace(int index) { + String namespace; + try { + namespace = xpp3XmlPullParser.getAttributeNamespace(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + + if (XMLConstants.NULL_NS_URI.equals(namespace)) { + namespace = null; + } + return namespace; + } + + @Override + public String getAttributeName(int index) { + try { + return xpp3XmlPullParser.getAttributeName(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + } + + @Override + public QName getAttributeQName(int index) { + String localpart = getAttributeName(index); + if (localpart == null) { + return null; + } + String prefix = getAttributePrefix(index); + prefix = nullValueToDefaultPrefix(prefix); + String namespace = getAttributeNamespace(index); + return new QName(namespace, localpart, prefix); + } + + @Override + public String getAttributePrefix(int index) { + String prefix; + try { + prefix = xpp3XmlPullParser.getAttributePrefix(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + prefix = nullValueToDefaultPrefix(prefix); + return prefix; + } + + @Override + public String getAttributeType(int index) { + try { + return xpp3XmlPullParser.getAttributeType(index); + } + catch (IndexOutOfBoundsException e) { + return null; + } + } + + @Override + public String getAttributeValue(int index) { + return xpp3XmlPullParser.getAttributeValue(index); + } + + @Override + public String getAttributeValue(String namespace, String name) { + return xpp3XmlPullParser.getAttributeValue(namespace, name); + } + + @Override + public Event getEventType() throws XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.getEventType(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + return xpp3EventIntegerToEvent(xpp3EventInt); + } + + @Override + public Event next() throws IOException, XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.next(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + return xpp3EventIntegerToEvent(xpp3EventInt); + } + + @Override + public String nextText() throws IOException, XmlPullParserException { + try { + return xpp3XmlPullParser.nextText(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + } + + @Override + public TagEvent nextTag() throws IOException, XmlPullParserException { + int xpp3EventInt; + try { + xpp3EventInt = xpp3XmlPullParser.nextTag(); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + switch (xpp3EventInt) { + case org.xmlpull.v1.XmlPullParser.START_TAG: + return TagEvent.START_ELEMENT; + case org.xmlpull.v1.XmlPullParser.END_TAG: + return TagEvent.END_ELEMENT; + default: + throw new AssertionError(); + } + } + + @Override + public boolean supportsRoundtrip() { + return xpp3XmlPullParser.getFeature(Xpp3XmlPullParserFactory.FEATURE_XML_ROUNDTRIP); + } + + private static Event xpp3EventIntegerToEvent(int xpp3EventInt) { + switch (xpp3EventInt) { + case org.xmlpull.v1.XmlPullParser.START_DOCUMENT: + return Event.START_DOCUMENT; + case org.xmlpull.v1.XmlPullParser.END_DOCUMENT: + return Event.END_DOCUMENT; + case org.xmlpull.v1.XmlPullParser.START_TAG: + return Event.START_ELEMENT; + case org.xmlpull.v1.XmlPullParser.END_TAG: + return Event.END_ELEMENT; + case org.xmlpull.v1.XmlPullParser.TEXT: + return Event.TEXT_CHARACTERS; + case org.xmlpull.v1.XmlPullParser.CDSECT: + return Event.OTHER; + case org.xmlpull.v1.XmlPullParser.ENTITY_REF: + return Event.ENTITY_REFERENCE; + case org.xmlpull.v1.XmlPullParser.IGNORABLE_WHITESPACE: + return Event.IGNORABLE_WHITESPACE; + case org.xmlpull.v1.XmlPullParser.PROCESSING_INSTRUCTION: + return Event.PROCESSING_INSTRUCTION; + case org.xmlpull.v1.XmlPullParser.COMMENT: + return Event.COMMENT; + case org.xmlpull.v1.XmlPullParser.DOCDECL: + return Event.OTHER; + default: + throw new IllegalArgumentException("Unknown XPP3 event integer: " + xpp3EventInt); + } + } + + private static String nullValueToDefaultPrefix(String prefix) { + if (prefix != null) { + return prefix; + } + return XMLConstants.DEFAULT_NS_PREFIX; + } +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java new file mode 100644 index 000000000..b3f413593 --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/Xpp3XmlPullParserFactory.java @@ -0,0 +1,86 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.xpp3; + +import java.io.Reader; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.jivesoftware.smack.xml.XmlPullParserException; +import org.jivesoftware.smack.xml.XmlPullParserFactory; + +public class Xpp3XmlPullParserFactory implements XmlPullParserFactory { + + private static final Logger LOGGER = Logger.getLogger(Xpp3XmlPullParserFactory.class.getName()); + + private static final org.xmlpull.v1.XmlPullParserFactory XPP3_XML_PULL_PARSER_FACTORY; + + public static final String FEATURE_XML_ROUNDTRIP = "http://xmlpull.org/v1/doc/features.html#xml-roundtrip"; + + /** + * True if the XmlPullParser supports the XML_ROUNDTRIP feature. + */ + public static final boolean XML_PULL_PARSER_SUPPORTS_ROUNDTRIP; + + static { + org.xmlpull.v1.XmlPullParser xmlPullParser; + boolean roundtrip = false; + try { + XPP3_XML_PULL_PARSER_FACTORY = org.xmlpull.v1.XmlPullParserFactory.newInstance(); + xmlPullParser = XPP3_XML_PULL_PARSER_FACTORY.newPullParser(); + try { + xmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); + // We could successfully set the feature + roundtrip = true; + } catch (org.xmlpull.v1.XmlPullParserException e) { + // Doesn't matter if FEATURE_XML_ROUNDTRIP isn't available + LOGGER.log(Level.FINEST, "XmlPullParser does not support XML_ROUNDTRIP", e); + } + } + catch (org.xmlpull.v1.XmlPullParserException e) { + // Something really bad happened + throw new AssertionError(e); + } + XML_PULL_PARSER_SUPPORTS_ROUNDTRIP = roundtrip; + } + + @Override + public Xpp3XmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException { + org.xmlpull.v1.XmlPullParser xpp3XmlPullParser; + try { + xpp3XmlPullParser = XPP3_XML_PULL_PARSER_FACTORY.newPullParser(); + xpp3XmlPullParser.setFeature(org.xmlpull.v1.XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); + xpp3XmlPullParser.setInput(reader); + } catch (org.xmlpull.v1.XmlPullParserException e) { + throw new XmlPullParserException(e); + } + + if (XML_PULL_PARSER_SUPPORTS_ROUNDTRIP) { + try { + xpp3XmlPullParser.setFeature(FEATURE_XML_ROUNDTRIP, true); + } + catch (org.xmlpull.v1.XmlPullParserException e) { + LOGGER.log(Level.SEVERE, + "XmlPullParser does not support XML_ROUNDTRIP, although it was first determined to be supported", + e); + } + } + + return new Xpp3XmlPullParser(xpp3XmlPullParser); + } + +} diff --git a/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java new file mode 100644 index 000000000..afed2224b --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/java/org/jivesoftware/smack/xml/xpp3/package-info.java @@ -0,0 +1,23 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Classes for XML handling using XPP3 (XML Pull Parser 3). + * + * @see XML Pull Parser + */ +package org.jivesoftware.smack.xml.xpp3; diff --git a/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory b/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory new file mode 100644 index 000000000..899ae3288 --- /dev/null +++ b/smack-xmlparser-xpp3/src/main/resources/META-INF/services/org.jivesoftware.smack.xml.XmlPullParserFactory @@ -0,0 +1 @@ +org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory diff --git a/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java b/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java new file mode 100644 index 000000000..ceb750467 --- /dev/null +++ b/smack-xmlparser-xpp3/src/test/java/org/jivesoftware/smack/xml/xpp3/Xpp3ParserTest.java @@ -0,0 +1,36 @@ +/** + * + * Copyright 2019 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml.xpp3; + +import java.io.IOException; +import java.io.StringReader; + +import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; + +import org.junit.jupiter.api.Test; + +public class Xpp3ParserTest { + + @Test + public void factoryTest() throws XmlPullParserException, IOException { + Xpp3XmlPullParserFactory xpp3XmlPullParserFactory = new Xpp3XmlPullParserFactory(); + XmlPullParser parser = xpp3XmlPullParserFactory.newXmlPullParser(new StringReader("")); + parser.next(); + } + +} diff --git a/smack-xmlparser/build.gradle b/smack-xmlparser/build.gradle new file mode 100644 index 000000000..46318a504 --- /dev/null +++ b/smack-xmlparser/build.gradle @@ -0,0 +1,2 @@ +description = """\ +Smack XML parser fundamentals""" diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java new file mode 100644 index 000000000..16f61e732 --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/SmackXmlParser.java @@ -0,0 +1,57 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml; + +import java.io.Reader; +import java.util.Iterator; +import java.util.ServiceLoader; + +public class SmackXmlParser { + + private static final ServiceLoader xmlPullParserFactoryServiceLoader; + + static { + xmlPullParserFactoryServiceLoader = ServiceLoader.load(XmlPullParserFactory.class); + } + + public static XmlPullParserFactory getXmlPullParserFactory() { + Iterator iterator = xmlPullParserFactoryServiceLoader.iterator(); + if (!iterator.hasNext()) { + throw new IllegalStateException("Could not load a XmlPullParserFactory via Service Provider Interface (SPI)"); + } + return iterator.next(); + } + + /** + * Creates a new XmlPullParser suitable for parsing XMPP. This means in particular that + * FEATURE_PROCESS_NAMESPACES is enabled. + *

+ * Note that not all XmlPullParser implementations will return a String on + * getText() if the parser is on START_ELEMENT or END_ELEMENT. So you must not rely on this + * behavior when using the parser. + *

+ * + * @param reader a reader to read the XML data from. + * @return A suitable XmlPullParser for XMPP parsing. + * @throws XmlPullParserException in case of an XmlPullParserException. + */ + public static XmlPullParser newXmlParser(Reader reader) throws XmlPullParserException { + XmlPullParserFactory xmlPullParserFactory = getXmlPullParserFactory(); + return xmlPullParserFactory.newXmlPullParser(reader); + } + +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java new file mode 100644 index 000000000..503ae3eda --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParser.java @@ -0,0 +1,169 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml; + +import java.io.IOException; + +import javax.xml.namespace.QName; + +/** + * Smack's interface for XML pull parsers. The main XML parser implementations are "Xml Pull Parser 3" (XPP3) on Android and "Streaming API for XML" (StAX, JSR 173) on Java. + * + *

+ * Differences from StAX's XMLStreamReader are: + *

+ *
    + *
  • {@link #getName()} and {@link #getAttributeName(int)} return localname, there is {@link #getQName()} and {@link #getAttributeQName(int)} to retrieve the qualified name ({@link javax.xml.namespace.QName QName}).
  • + *
  • {@link #nextText()} instead of {@code XMLStreamReader.getElementText()}. + *
+ *

+ * Differences from XPP3's XmlPullParser are: + *

+ *
    + *
  • Methods taking an attribute, like {@link #getAttributeName(int)} index return null instead of throwing an exception if no attribute with the given index exists.
  • + *
+ * + *

Developer Information

+ *

+ * The following table shows the mapping of Smack's XmlPullParser events to StAX and XPP3 events: + *

+ * + * + * + * + * + * + * + * + * + * + * + * + *
Smack's {@link XmlPullParser.Event}StAX EventXPP3 Event
{@link XmlPullParser.Event#START_DOCUMENT}START_DOCUMENT (7)START_DOCUMENT (0)
{@link XmlPullParser.Event#END_DOCUMENT}END_DOCUMENT (8)END_DOCUMENT (1)
{@link XmlPullParser.Event#START_ELEMENT}START_ELEMENT (1)START_TAG (2)
{@link XmlPullParser.Event#END_ELEMENT}END_ELEMENT (2)END_TAG (3)
{@link XmlPullParser.Event#TEXT_CHARACTERS}CHARACTERS (4)TEXT (4)
{@link XmlPullParser.Event#PROCESSING_INSTRUCTION}PROCESSING_INSTRUCTION (3)PROCESSING_INSTRUCTION (8)
{@link XmlPullParser.Event#COMMENT}COMMENT (5)COMMENT (9)
{@link XmlPullParser.Event#IGNORABLE_WHITESPACE}SPACE (6)IGNORABLE_WHITESPACE (7)
{@link XmlPullParser.Event#ENTITY_REFERENCE}ENTITY_REFERENCE (9)ENTITY_REF (6)
{@link XmlPullParser.Event#OTHER}ENTITY_REFERENCE (9)ENTITY_REF (6)
+ *

{@link XmlPullParser.Event#OTHER} includes + * in case of StAX: ATTRIBUTE (10), DTD (11), CDATA (12), NAMESPACE (13), NOTATION_DECLARATION (14) and ENTITY_DECLRATION (15), + * in case of XPP3: CDSECT (5), DOCDECL (10). + *

+ * + */ +public interface XmlPullParser { + + Object getProperty(String name); + + String getInputEncoding(); + + int getNamespaceCount() throws XmlPullParserException; + + String getNamespacePrefix(int pos) throws XmlPullParserException; + + String getNamespaceUri(int pos) throws XmlPullParserException; + + String getNamespace(String prefix); + + int getDepth(); + + String getPositionDescription(); + + int getLineNumber(); + + int getColumnNumber(); + + boolean isWhiteSpace() throws XmlPullParserException; + + String getText(); + + String getNamespace(); + + /** + * Return the name for the current START_ELEMENT or END_ELEMENT event. This method must only be called if the + * current event is START_ELEMENT or END_ELEMENT. + * + * @return the name for the current START_ELEMETN or END_ELEMENT event. + */ + String getName(); + + QName getQName(); + + String getPrefix(); + + int getAttributeCount(); + + String getAttributeNamespace(int index); + + /** + * Returns the loacalpart of the attribute's name or null in case the index does not refer to an + * attribute. + * + * @param index the attribute index. + * @return the localpart of the attribute's name or null. + */ + String getAttributeName(int index); + + QName getAttributeQName(int index); + + String getAttributePrefix(int index); + + String getAttributeType(int index); + + String getAttributeValue(int index); + + String getAttributeValue(String namespace, String name); + + Event getEventType() throws XmlPullParserException; + + Event next() throws IOException, XmlPullParserException; + + /** + * Reads the content of a text-only element, an exception is thrown if this is + * not a text-only element. + *
    + *
  • Precondition: the current event is START_ELEMENT.
  • + *
  • Postcondition: the current event is the corresponding END_ELEMENT.
  • + *
+ * + * @return the textual content of the current element. + * @throws IOException in case of an IO error. + * @throws XmlPullParserException in case of an XML pull parser error. + */ + String nextText() throws IOException, XmlPullParserException; + + TagEvent nextTag() throws IOException, XmlPullParserException; + + enum TagEvent { + START_ELEMENT, + END_ELEMENT, + } + + enum Event { + START_DOCUMENT, + END_DOCUMENT, + START_ELEMENT, + END_ELEMENT, + + /** + * Replaces TEXT from XPP3. + */ + TEXT_CHARACTERS, + PROCESSING_INSTRUCTION, + COMMENT, + IGNORABLE_WHITESPACE, + ENTITY_REFERENCE, + OTHER, + } + + boolean supportsRoundtrip(); +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java new file mode 100644 index 000000000..66cc7d5ac --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserException.java @@ -0,0 +1,30 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml; + +public class XmlPullParserException extends Exception { + + private static final long serialVersionUID = 1L; + + public XmlPullParserException(Exception wrapped) { + super(wrapped); + } + + public XmlPullParserException(String message) { + super(message); + } +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java new file mode 100644 index 000000000..42877584e --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/XmlPullParserFactory.java @@ -0,0 +1,25 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.xml; + +import java.io.Reader; + +public interface XmlPullParserFactory { + + XmlPullParser newXmlPullParser(Reader reader) throws XmlPullParserException; + +} diff --git a/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java new file mode 100644 index 000000000..434d2829c --- /dev/null +++ b/smack-xmlparser/src/main/java/org/jivesoftware/smack/xml/package-info.java @@ -0,0 +1,21 @@ +/** + * + * Copyright 2019 Florian Schmaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Classes for XML handling. Especially tailored for XMPP. + */ +package org.jivesoftware.smack.xml;