From be4aacc71d40458f8f46da30050c38874d57ca5b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 25 Nov 2017 17:59:07 +0100 Subject: [PATCH 01/14] Smack 4.2.3-SNAPSHOT --- version.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.gradle b/version.gradle index b4d35bb6b..efbe1d7c8 100644 --- a/version.gradle +++ b/version.gradle @@ -1,7 +1,7 @@ allprojects { ext { - shortVersion = '4.2.2' - isSnapshot = false + shortVersion = '4.2.3' + isSnapshot = true jxmppVersion = '0.6.0' smackMinAndroidSdk = 8 } From 47940ba5ad623d31280e9c2e2affd6aa6c72aee3 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Fri, 1 Dec 2017 09:28:21 +0100 Subject: [PATCH 02/14] Fix NPE in DNSResolver.lookupSRVRecords0 in case hostAddresses was null, the isEmpty() check before the log() invocation would throw an NPE. Thanks to Ingo Bauersachs for reporting this. Fixes SMACK-788. --- .../smack/util/dns/DNSResolver.java | 17 +++++++++++++++++ .../smack/util/dns/dnsjava/DNSJavaResolver.java | 11 ++--------- .../smack/util/dns/javax/JavaxResolver.java | 8 +------- .../smack/util/dns/minidns/MiniDnsResolver.java | 9 +-------- 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/dns/DNSResolver.java b/smack-core/src/main/java/org/jivesoftware/smack/util/dns/DNSResolver.java index c2823213c..dc1b79306 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/dns/DNSResolver.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/dns/DNSResolver.java @@ -20,6 +20,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; import org.jivesoftware.smack.ConnectionConfiguration.DnssecMode; @@ -91,6 +92,22 @@ public abstract class DNSResolver { return Arrays.asList(inetAddressArray); } + protected final boolean shouldContinue(CharSequence name, CharSequence hostname, List hostAddresses) { + if (hostAddresses == null) { + return true; + } + + // If hostAddresses is not null but empty, then the DNS resolution was successful but the domain did not + // have any A or AAAA resource records. + if (hostAddresses.isEmpty()) { + LOGGER.log(Level.INFO, "The DNS name " + name + ", points to a hostname (" + hostname + + ") which has neither A or AAAA resource records. This is an indication of a broken DNS setup."); + return true; + } + + return false; + } + private final void checkIfDnssecRequestedAndSupported(DnssecMode dnssecMode) { if (dnssecMode != DnssecMode.disabled && !supportsDnssec) { throw new UnsupportedOperationException("This resolver does not support DNSSEC"); diff --git a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver.java b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver.java index dd449fce3..f9aeee32d 100644 --- a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver.java +++ b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/DNSJavaResolver.java @@ -1,6 +1,6 @@ /** * - * Copyright 2013-2016 Florian Schmaus + * Copyright 2013-2017 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,6 @@ package org.jivesoftware.smack.util.dns.dnsjava; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; import org.jivesoftware.smack.ConnectionConfiguration.DnssecMode; import org.jivesoftware.smack.initializer.SmackInitializer; @@ -74,13 +73,7 @@ public class DNSJavaResolver extends DNSResolver implements SmackInitializer { int weight = srvRecord.getWeight(); List hostAddresses = lookupHostAddress0(host, failedAddresses, dnssecMode); - if (hostAddresses == null || hostAddresses.isEmpty()) { - // If hostAddresses is not null but empty, then the DNS resolution was successful but the domain did not - // have any A or AAAA resource records. - if (hostAddresses.isEmpty()) { - LOGGER.log(Level.INFO, "The DNS name " + name + ", points to a hostname (" + host - + ") which has neither A or AAAA resource records. This is an indication of a broken DNS setup."); - } + if (shouldContinue(name, host, hostAddresses)) { continue; } diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java index 1afce4198..f1cabcc13 100644 --- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java +++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java @@ -111,13 +111,7 @@ public class JavaxResolver extends DNSResolver implements SmackInitializer { String host = srvRecordEntries[srvRecordEntries.length - 1]; List hostAddresses = lookupHostAddress0(host, failedAddresses, dnssecMode); - if (hostAddresses == null || hostAddresses.isEmpty()) { - // If hostAddresses is not null but empty, then the DNS resolution was successful but the domain did not - // have any A or AAAA resource records. - if (hostAddresses.isEmpty()) { - LOGGER.log(Level.INFO, "The DNS name " + name + ", points to a hostname (" + host - + ") which has neither A or AAAA resource records. This is an indication of a broken DNS setup."); - } + if (shouldContinue(name, host, hostAddresses)) { continue; } diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java index 24e4c985c..2ecd717da 100644 --- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java +++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Set; -import java.util.logging.Level; import org.jivesoftware.smack.ConnectionConfiguration.DnssecMode; import org.jivesoftware.smack.initializer.SmackInitializer; @@ -91,13 +90,7 @@ public class MiniDnsResolver extends DNSResolver implements SmackInitializer { for (SRV srv : result.getAnswers()) { String hostname = srv.name.ace; List hostAddresses = lookupHostAddress0(hostname, failedAddresses, dnssecMode); - if (hostAddresses == null || hostAddresses.isEmpty()) { - // If hostAddresses is not null but empty, then the DNS resolution was successful but the domain did not - // have any A or AAAA resource records. - if (hostAddresses.isEmpty()) { - LOGGER.log(Level.INFO, "The DNS name " + name + ", points to a hostname (" + hostname - + ") which has neither A or AAAA resource records. This is an indication of a broken DNS setup."); - } + if (shouldContinue(name, hostname, hostAddresses)) { continue; } From ca1852f6e0280ec687acddd84c2535fd92a3d8bf Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 5 Dec 2017 20:39:16 +0100 Subject: [PATCH 03/14] Fix AffiliationsExtension.toXml() Fixes SMACK-789. --- .../org/jivesoftware/smackx/pubsub/AffiliationsExtension.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/AffiliationsExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/AffiliationsExtension.java index 9e4ae26be..dd19877b9 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/AffiliationsExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/AffiliationsExtension.java @@ -63,7 +63,7 @@ public class AffiliationsExtension extends NodeExtension { // Can't use XmlStringBuilder(this), because we don't want the namespace to be included XmlStringBuilder xml = new XmlStringBuilder(); - xml.openElement(getElementName()); + xml.halfOpenElement(getElementName()); xml.optAttribute("node", node); xml.rightAngleBracket(); xml.append(items); From a25971d02bbf4737818573307389e2c8be0b0cc1 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 5 Dec 2017 20:39:34 +0100 Subject: [PATCH 04/14] Add AffiliationsExtensionTest --- .../pubsub/AffiliationsExtensionTest.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/AffiliationsExtensionTest.java diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/AffiliationsExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/AffiliationsExtensionTest.java new file mode 100644 index 000000000..079733aab --- /dev/null +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/AffiliationsExtensionTest.java @@ -0,0 +1,49 @@ +/** + * + * Copyright 2017 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.smackx.pubsub; + +import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.jivesoftware.smackx.pubsub.Affiliation.Type; + +import org.junit.Test; +import org.jxmpp.jid.BareJid; +import org.jxmpp.jid.JidTestUtil; +import org.xml.sax.SAXException; + +public class AffiliationsExtensionTest { + + @Test + public void testAffiliationsExtensionToXml() throws SAXException, IOException { + BareJid affiliatedJid = JidTestUtil.BARE_JID_1; + Affiliation affiliation = new Affiliation(affiliatedJid, Type.member); + List affiliationsList = new ArrayList<>(); + affiliationsList.add(affiliation); + + AffiliationsExtension affiliationsExtension = new AffiliationsExtension(affiliationsList, "testNode"); + + CharSequence xml = affiliationsExtension.toXML(); + + assertXMLEqual("", + xml.toString()); + } + +} From 9863b9c45858ef43b228959bd8b9c9ed5f2c1133 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 5 Dec 2017 20:52:42 +0100 Subject: [PATCH 05/14] Use ResolverResult.getResolutionUnsuccessfulException() in MiniDnsResolver --- .../jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java index 2ecd717da..762065232 100644 --- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java +++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/MiniDnsResolver.java @@ -75,9 +75,8 @@ public class MiniDnsResolver extends DNSResolver implements SmackInitializer { return null; } - // TODO: Use ResolverResult.getResolutionUnsuccessfulException() found in newer MiniDNS versions. - if (!result.wasSuccessful()) { - ResolutionUnsuccessfulException resolutionUnsuccessfulException = getExceptionFrom(result); + ResolutionUnsuccessfulException resolutionUnsuccessfulException = result.getResolutionUnsuccessfulException(); + if (resolutionUnsuccessfulException != null) { failedAddresses.add(new HostAddress(name, resolutionUnsuccessfulException)); return null; } From e1615ee7d31ebe1ca79476c91ad1318c6e608bb4 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 7 Dec 2017 17:55:18 +0100 Subject: [PATCH 06/14] Eliminate stray 'g' in experimental.providers --- .../org.jivesoftware.smack.experimental/experimental.providers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-experimental/src/main/resources/org.jivesoftware.smack.experimental/experimental.providers b/smack-experimental/src/main/resources/org.jivesoftware.smack.experimental/experimental.providers index 21a8281f0..b5c89b3fb 100644 --- a/smack-experimental/src/main/resources/org.jivesoftware.smack.experimental/experimental.providers +++ b/smack-experimental/src/main/resources/org.jivesoftware.smack.experimental/experimental.providers @@ -254,7 +254,7 @@ urn:xmpp:hints org.jivesoftware.smackx.hints.provider.StoreHintProvider -g + slot From 36a278eeca8c008402088905d2e4c99e395cef26 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 9 Dec 2017 10:35:32 +0100 Subject: [PATCH 07/14] Add javadoc to HTTP File Upload API --- .../smackx/httpfileupload/HttpFileUploadManager.java | 11 +++++++++++ .../smackx/httpfileupload/UploadService.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java index da2e6d609..47e2ddd8b 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java @@ -64,7 +64,18 @@ import org.jxmpp.jid.DomainBareJid; */ public final class HttpFileUploadManager extends Manager { + /** + * Namespace of XEP-0363 v0.4 or higher. Constant value {@value #NAMESPACE}. + * + * @see XEP-0363 v0.4.0 + */ public static final String NAMESPACE = "urn:xmpp:http:upload:0"; + + /** + * Namespace of XEP-0363 v0.2 or lower. Constant value {@value #NAMESPACE_0_2}. + * + * @see XEP-0363 v0.2.5 + */ public static final String NAMESPACE_0_2 = "urn:xmpp:http:upload"; private static final Logger LOGGER = Logger.getLogger(HttpFileUploadManager.class.getName()); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java index ae9f90cbb..baf279cd8 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java @@ -23,7 +23,18 @@ import org.jxmpp.jid.DomainBareJid; public class UploadService { enum Version { + /** + * Upload service as specified in XEP-0363 v0.2 or lower. + * + * @see XEP-0363 v0.2.5 + */ v0_2, + + /** + * Upload service as specified in XEP-0363 v0.3 or higher. + * + * @see XEP-0363 v0.4.0 + */ v0_3, }; From 0a0066c80609d894a24dc2ff06d1430a4e25c792 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 9 Dec 2017 14:35:35 +0100 Subject: [PATCH 08/14] Fix XEP-0363 HTTP File Upload elements Smack still expected the URLs as element text and not as value of an 'url' attribute. Fixes SMACK-790. --- .../httpfileupload/HttpFileUploadManager.java | 16 +++++++ .../smackx/httpfileupload/UploadService.java | 2 +- .../smackx/httpfileupload/element/Slot.java | 22 +++++++--- .../httpfileupload/element/Slot_V0_2.java | 9 ++++ .../httpfileupload/provider/SlotProvider.java | 42 ++++++++++++++++--- .../smackx/httpfileupload/SlotCreateTest.java | 13 +++--- .../provider/SlotProviderTest.java | 5 +-- 7 files changed, 88 insertions(+), 21 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java index 47e2ddd8b..9bf90c443 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java @@ -470,6 +470,22 @@ public final class HttpFileUploadManager extends Manager { } } + public static UploadService.Version namespaceToVersion(String namespace) { + UploadService.Version version; + switch (namespace) { + case NAMESPACE: + version = Version.v0_3; + break; + case NAMESPACE_0_2: + version = Version.v0_2; + break; + default: + version = null; + break; + } + return version; + } + private static boolean containsHttpFileUploadNamespace(DiscoverInfo discoverInfo) { return discoverInfo.containsFeature(NAMESPACE) || discoverInfo.containsFeature(NAMESPACE_0_2); } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java index baf279cd8..17d4fc988 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/UploadService.java @@ -22,7 +22,7 @@ import org.jxmpp.jid.DomainBareJid; public class UploadService { - enum Version { + public enum Version { /** * Upload service as specified in XEP-0363 v0.2 or lower. * diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot.java index 943929f9f..274e59bc0 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot.java @@ -33,8 +33,9 @@ public class Slot extends IQ { public static final String ELEMENT = "slot"; public static final String NAMESPACE = SlotRequest.NAMESPACE; - private final URL putUrl; - private final URL getUrl; + protected final URL putUrl; + protected final URL getUrl; + private final Map headers; public Slot(URL putUrl, URL getUrl) { @@ -73,12 +74,21 @@ public class Slot extends IQ { protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { xml.rightAngleBracket(); - xml.element("put", putUrl.toString()); - xml.element("get", getUrl.toString()); - for (Map.Entry entry : getHeaders().entrySet()) { - xml.openElement("header").attribute(entry.getKey(), entry.getValue()); + xml.halfOpenElement("put").attribute("url", putUrl.toString()); + if (headers.isEmpty()) { + xml.closeEmptyElement(); + } else { + xml.rightAngleBracket(); + for (Map.Entry entry : getHeaders().entrySet()) { + xml.halfOpenElement("header").attribute("name", entry.getKey()).rightAngleBracket(); + xml.escape(entry.getValue()); + xml.closeElement("header"); + } + xml.closeElement("put"); } + xml.halfOpenElement("get").attribute("url", getUrl.toString()).closeEmptyElement(); + return xml; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot_V0_2.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot_V0_2.java index 20645ac1a..e44fc3e42 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot_V0_2.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/Slot_V0_2.java @@ -28,4 +28,13 @@ public class Slot_V0_2 extends Slot { super(putUrl, getUrl, null, NAMESPACE); } + @Override + protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { + xml.rightAngleBracket(); + + xml.element("put", putUrl.toString()); + xml.element("get", getUrl.toString()); + + return xml; + } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java index 4647f168c..178a9aaa5 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java @@ -25,6 +25,8 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.provider.IQProvider; import org.jivesoftware.smack.util.ParserUtils; +import org.jivesoftware.smackx.httpfileupload.HttpFileUploadManager; +import org.jivesoftware.smackx.httpfileupload.UploadService; import org.jivesoftware.smackx.httpfileupload.element.Slot; import org.jivesoftware.smackx.httpfileupload.element.Slot_V0_2; @@ -42,6 +44,10 @@ public class SlotProvider extends IQProvider { @Override public Slot parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException, SmackException { final String namespace = parser.getNamespace(); + + final UploadService.Version version = HttpFileUploadManager.namespaceToVersion(namespace); + assert version != null; + URL putUrl = null; URL getUrl = null; Map headers = null; @@ -53,11 +59,34 @@ public class SlotProvider extends IQProvider { case XmlPullParser.START_TAG: String name = parser.getName(); switch (name) { - case "put": - putUrl = new URL(parser.nextText()); + case "put": { + String putUrlString; + switch (version) { + case v0_2: + putUrlString = parser.nextText(); + break; + case v0_3: + putUrlString = parser.getAttributeValue(null, "url"); + break; + default: + throw new AssertionError(); + } + putUrl = new URL(putUrlString); break; + } case "get": - getUrl = new URL(parser.nextText()); + String getUrlString; + switch (version) { + case v0_2: + getUrlString = parser.nextText(); + break; + case v0_3: + getUrlString = parser.getAttributeValue(null, "url"); + break; + default: + throw new AssertionError(); + } + getUrl = new URL(getUrlString); break; case "header": String headerName = ParserUtils.getRequiredAttribute(parser, "name"); @@ -77,13 +106,14 @@ public class SlotProvider extends IQProvider { } } - switch (namespace) { - case Slot.NAMESPACE: + switch (version) { + case v0_3: return new Slot(putUrl, getUrl, headers); - case Slot_V0_2.NAMESPACE: + case v0_2: return new Slot_V0_2(putUrl, getUrl); default: throw new AssertionError(); } } + } 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 49cd2c233..151c0e015 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 @@ -16,23 +16,26 @@ */ package org.jivesoftware.smackx.httpfileupload; -import java.net.MalformedURLException; +import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; + +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.xml.sax.SAXException; public class SlotCreateTest { String testSlot = "" - + "https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png" - + "https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png" + + "" + + "" + ""; @Test - public void checkSlotRequestCreation() throws MalformedURLException { + public void checkSlotRequestCreation() throws SAXException, IOException { 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")); @@ -41,6 +44,6 @@ public class SlotCreateTest { Assert.assertEquals(new URL("https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"), slot.getGetUrl()); - Assert.assertEquals(testSlot, slot.getChildElementXML().toString()); + assertXMLEqual(testSlot, slot.getChildElementXML().toString()); } } 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 82813d5e3..386b1f596 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 @@ -26,7 +26,6 @@ import org.jivesoftware.smackx.httpfileupload.element.Slot; import org.junit.Assert; import org.junit.Test; - public class SlotProviderTest { /** @@ -39,8 +38,8 @@ public class SlotProviderTest { + "to='romeo@montague.tld/garden' " + "type='result'>" + "" - + "https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png" - + "https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png" + + "" + + "" + "" + ""; From 3a7c20ce54a30e6b73df3938cbf4ec220645990e Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 10 Dec 2017 14:23:11 +0100 Subject: [PATCH 09/14] Add more HTTP File Upload SlotProvider tests --- .../provider/SlotProviderTest.java | 91 ++++++++++++++++--- 1 file changed, 79 insertions(+), 12 deletions(-) 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 386b1f596..dc16ef9e9 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 @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Grigory Fedorov + * Copyright © 2017 Grigory Fedorov, 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,41 +16,108 @@ */ package org.jivesoftware.smackx.httpfileupload.provider; +import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.junit.Assert.assertEquals; + +import java.net.MalformedURLException; import java.net.URL; -import org.jivesoftware.smack.packet.IQ; 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.Assert; import org.junit.Test; public class SlotProviderTest { + private static final String PUT_URL_STRING = "https://upload.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"; + + private static final String GET_URL_STRING = "https://download.montague.tld/4a771ac1-f0b2-4a4a-9700-f2a26fa2bb67/my_juliet.png"; + + private static final URL PUT_URL = urlFromString(PUT_URL_STRING); + private static final URL GET_URL = urlFromString(GET_URL_STRING); + + private static URL urlFromString(String urlString) { + try { + return new URL(urlString); + } + catch (MalformedURLException e) { + throw new Error(e); + } + } + /** * Example 6. The upload service responds with a slot * @see XEP-0363: HTTP File Upload 4. Requesting a slot */ - String slotExample + private static final String SLOT_IQ = "" + "" - + "" - + "" + + "" + + "" + "" + ""; @Test public void checkSlotProvider() throws Exception { - Slot slot = PacketParserUtils.parseStanza(slotExample); + Slot slot = PacketParserUtils.parseStanza(SLOT_IQ); - Assert.assertEquals(IQ.Type.result, slot.getType()); - Assert.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"), - slot.getGetUrl()); + checkUrls(slot); + + assertXMLEqual(SLOT_IQ, slot.toXML().toString()); + } + + private static final String SLOT_V0_2_IQ = + "" + + "" + + "" + PUT_URL_STRING + "" + + "" + GET_URL_STRING + "" + + "" + + ""; + + @Test + public void checkSlotV0_2Provider() throws Exception { + Slot_V0_2 slot = PacketParserUtils.parseStanza(SLOT_V0_2_IQ); + + checkUrls(slot); + + String slotXml = slot.toXML().toString(); + assertXMLEqual(SLOT_V0_2_IQ, slotXml); + } + + private static final String SLOT_WITH_HEADERS_IQ = + "" + + "" + + "" + + "
Basic Base64String==
" + + "
montague.tld
" + + "
" + + "" + + "
" + + "
"; + + @Test + public void checkSlotWithHeaders() throws Exception { + Slot slot = PacketParserUtils.parseStanza(SLOT_WITH_HEADERS_IQ); + + checkUrls(slot); + + String slotXml = slot.toXML().toString(); + assertXMLEqual(SLOT_WITH_HEADERS_IQ, slotXml); + } + + private static void checkUrls(Slot slot) { + assertEquals(PUT_URL, slot.getPutUrl()); + assertEquals(GET_URL, slot.getGetUrl()); } } From 63dd9953fce3365add117c5a9a7f8606d8b98403 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 10 Dec 2017 15:29:57 +0100 Subject: [PATCH 10/14] Improve HTTP File Upload SlotProvider --- .../httpfileupload/provider/SlotProvider.java | 74 +++++++++++++++---- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java index 178a9aaa5..5d3b069e1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/provider/SlotProvider.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2017 Grigory Fedorov + * Copyright © 2017 Grigory Fedorov, Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ public class SlotProvider extends IQProvider { URL putUrl = null; URL getUrl = null; - Map headers = null; + PutElement_V0_4_Content putElementV04Content = null; outerloop: while (true) { int event = parser.next(); @@ -60,18 +60,17 @@ public class SlotProvider extends IQProvider { String name = parser.getName(); switch (name) { case "put": { - String putUrlString; switch (version) { case v0_2: - putUrlString = parser.nextText(); + String putUrlString = parser.nextText(); + putUrl = new URL(putUrlString); break; case v0_3: - putUrlString = parser.getAttributeValue(null, "url"); + putElementV04Content = parsePutElement_V0_4(parser); break; default: throw new AssertionError(); } - putUrl = new URL(putUrlString); break; } case "get": @@ -88,14 +87,6 @@ public class SlotProvider extends IQProvider { } getUrl = new URL(getUrlString); break; - case "header": - String headerName = ParserUtils.getRequiredAttribute(parser, "name"); - String headerValue = ParserUtils.getRequiredNextText(parser); - if (headers == null) { - headers = new HashMap<>(); - } - headers.put(headerName, headerValue); - break; } break; case XmlPullParser.END_TAG: @@ -108,7 +99,7 @@ public class SlotProvider extends IQProvider { switch (version) { case v0_3: - return new Slot(putUrl, getUrl, headers); + return new Slot(putElementV04Content.putUrl, getUrl, putElementV04Content.headers); case v0_2: return new Slot_V0_2(putUrl, getUrl); default: @@ -116,4 +107,57 @@ public class SlotProvider extends IQProvider { } } + public static PutElement_V0_4_Content parsePutElement_V0_4(XmlPullParser parser) throws XmlPullParserException, IOException { + final int initialDepth = parser.getDepth(); + + String putUrlString = parser.getAttributeValue(null, "url"); + URL putUrl = new URL(putUrlString); + + Map headers = null; + outerloop: while (true) { + int next = parser.next(); + switch (next) { + case XmlPullParser.START_TAG: + String name = parser.getName(); + switch (name) { + case "header": + String headerName = ParserUtils.getRequiredAttribute(parser, "name"); + String headerValue = ParserUtils.getRequiredNextText(parser); + if (headers == null) { + headers = new HashMap<>(); + } + headers.put(headerName, headerValue); + break; + default: + break; + } + break; + case XmlPullParser.END_TAG: + if (parser.getDepth() == initialDepth) { + break outerloop; + } + break; + } + } + + return new PutElement_V0_4_Content(putUrl, headers); + } + + public static final class PutElement_V0_4_Content { + private final URL putUrl; + private final Map headers; + + private PutElement_V0_4_Content(URL putUrl, Map headers) { + this.putUrl = putUrl; + this.headers = headers; + } + + public URL getPutUrl() { + return putUrl; + } + + public Map getHeaders() { + return headers; + } + } } From 5147f6e9154f915feb2ed1c3057e0780af177892 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 16 Dec 2017 12:36:02 +0100 Subject: [PATCH 11/14] Fix IPAddressUtil.isIPv4LiteralAddress(String) Fixes SMACK-791 --- .../main/java/org/jivesoftware/smack/util/IpAddressUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java b/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java index 26c710acf..55586e2c3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java @@ -29,7 +29,7 @@ public class IpAddressUtil { return false; } - for (int i = 0; i < 3; i++) { + for (int i = 1; i <= 4; i++) { String ipSegment = matcher.group(i); int ipSegmentInt; try { From 517fc6e0f29ba3bd90806b2922af105e8023724b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 16 Dec 2017 12:37:11 +0100 Subject: [PATCH 12/14] Add assert to IpAddressUtil.isIPv4LiteralAddress(String) --- .../main/java/org/jivesoftware/smack/util/IpAddressUtil.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java b/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java index 55586e2c3..8d1ad7b78 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/IpAddressUtil.java @@ -29,6 +29,8 @@ public class IpAddressUtil { return false; } + assert matcher.groupCount() == 4; + for (int i = 1; i <= 4; i++) { String ipSegment = matcher.group(i); int ipSegmentInt; From 200f90ffdcb49e38ace6238b9c7975d625094ee6 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 16 Dec 2017 12:37:29 +0100 Subject: [PATCH 13/14] Add IpAddressUtilTest --- .../smack/util/IpAddressUtilTest.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 smack-core/src/test/java/org/jivesoftware/smack/util/IpAddressUtilTest.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/IpAddressUtilTest.java b/smack-core/src/test/java/org/jivesoftware/smack/util/IpAddressUtilTest.java new file mode 100644 index 000000000..575c71714 --- /dev/null +++ b/smack-core/src/test/java/org/jivesoftware/smack/util/IpAddressUtilTest.java @@ -0,0 +1,46 @@ +/** + * + * Copyright 2017 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.util; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class IpAddressUtilTest { + + @Test + public void isIpV4AddressTest() { + String ipv4 = "122.20.221.11"; + boolean isIpV4 = IpAddressUtil.isIPv4LiteralAddress(ipv4); + assertTrue(isIpV4); + } + + @Test + public void isInvalidIpV4AddressTest() { + String ipv4 = "122.20.221.11.1"; + boolean isIpV4 = IpAddressUtil.isIPv4LiteralAddress(ipv4); + assertFalse(isIpV4); + } + + @Test + public void isInvalidIpV4AddressTest2() { + String ipv4 = "122.20.256.11"; + boolean isIpV4 = IpAddressUtil.isIPv4LiteralAddress(ipv4); + assertFalse(isIpV4); + } +} From cb180566134f842059fc04bec338283703545ec0 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Wed, 13 Dec 2017 23:10:11 +0100 Subject: [PATCH 14/14] Fix minor codestyle issues --- .../smack/ConnectionConfiguration.java | 8 +-- .../smack/ConnectionCreationListener.java | 2 +- .../smack/ConnectionListener.java | 14 ++--- .../jivesoftware/smack/ExceptionCallback.java | 2 +- .../java/org/jivesoftware/smack/Manager.java | 2 +- .../smack/ReconnectionListener.java | 4 +- .../smack/ReconnectionManager.java | 2 +- .../smack/SASLAuthentication.java | 14 ++--- .../smack/SmackConfiguration.java | 14 ++--- .../jivesoftware/smack/SmackException.java | 2 +- .../smack/SmackInitialization.java | 5 +- .../jivesoftware/smack/StanzaCollector.java | 2 +- .../jivesoftware/smack/StanzaListener.java | 2 +- .../jivesoftware/smack/SuccessCallback.java | 2 +- .../smack/XMPPConnectionRegistry.java | 2 +- .../smack/filter/EmptyToMatcher.java | 5 +- .../smack/filter/StanzaFilter.java | 2 +- .../smack/initializer/SmackInitializer.java | 2 +- .../smack/iqrequest/IQRequestHandler.java | 12 ++-- .../jivesoftware/smack/packet/Element.java | 2 +- .../smack/packet/EmptyResultIQ.java | 2 +- .../smack/packet/ExtensionElement.java | 2 +- .../org/jivesoftware/smack/packet/IQ.java | 2 +- .../smack/packet/NamedElement.java | 2 +- .../org/jivesoftware/smack/packet/Packet.java | 50 ++++++++--------- .../smack/packet/StreamError.java | 4 +- .../parsing/ParsingExceptionCallback.java | 2 +- .../smack/provider/ProviderManager.java | 10 ++-- .../proxy/HTTPProxySocketConnection.java | 2 +- .../jivesoftware/smack/proxy/ProxyInfo.java | 2 +- .../smack/proxy/ProxySocketConnection.java | 2 +- .../proxy/Socks4ProxySocketConnection.java | 2 +- .../smack/sasl/core/ScramMechanism.java | 4 +- .../org/jivesoftware/smack/util/Async.java | 2 +- .../jivesoftware/smack/util/ByteUtils.java | 2 +- .../smack/util/LazyStringBuilder.java | 2 +- .../smack/util/ObservableWriter.java | 8 +-- .../smack/util/PacketParserUtils.java | 8 +-- .../jivesoftware/smack/util/PacketUtil.java | 2 +- .../jivesoftware/smack/util/ParserUtils.java | 12 +--- .../smack/util/ReaderListener.java | 2 +- .../smack/util/StringTransformer.java | 2 +- .../jivesoftware/smack/util/StringUtils.java | 4 +- .../org/jivesoftware/smack/util/TLSUtils.java | 2 +- .../smack/util/TypedCloneable.java | 2 +- .../smack/util/WriterListener.java | 2 +- .../smack/util/XmlStringBuilder.java | 8 +-- .../smack/util/dns/HostAddress.java | 2 +- .../smack/util/dns/SRVRecord.java | 4 +- .../smack/StanzaCollectorTest.java | 4 +- .../smack/ThreadedDummyConnection.java | 4 +- .../smack/packet/MessageTest.java | 2 +- .../smack/parsing/ParsingExceptionTest.java | 2 +- .../smack/sasl/DigestMd5SaslTest.java | 3 +- .../smack/test/util/CharSequenceEquals.java | 47 ++++++++++++++++ .../smack/util/PacketParserUtilsTest.java | 2 +- .../debugger/EnhancedDebuggerWindow.java | 6 +- .../carbons/packet/CarbonExtension.java | 2 +- .../ExplicitMessageEncryptionElement.java | 2 +- .../hoxt/packet/AbstractHttpOverXmpp.java | 2 +- .../iot/control/ThingControlRequest.java | 2 +- .../iot/control/element/IoTSetResponse.java | 2 +- .../smackx/iot/control/element/SetData.java | 2 +- .../data/ThingMomentaryReadOutRequest.java | 2 +- .../iot/data/ThingMomentaryReadOutResult.java | 2 +- .../iot/data/element/IoTDataRequest.java | 2 +- .../discovery/ThingStateChangeListener.java | 2 +- .../smackx/iot/discovery/element/Tag.java | 2 +- .../provisioning/IoTProvisioningManager.java | 8 +-- .../jivesoftware/smackx/mam/MamManager.java | 10 ++-- .../smackx/muclight/MultiUserChatLight.java | 8 +-- .../muclight/MultiUserChatLightManager.java | 18 +++--- .../smackx/ExperimentalInitializerTest.java | 2 +- .../smackx/carbons/CarbonTest.java | 2 +- .../AcknowledgedExtensionTest.java | 2 +- .../chat_markers/DisplayedExtensionTest.java | 2 +- .../chat_markers/MarkableExtensionTest.java | 2 +- .../chat_markers/ReceivedExtensionTest.java | 2 +- .../provider/HttpOverXmppReqProviderTest.java | 3 +- .../FileTooLargeErrorCreateTest.java | 2 +- .../smackx/httpfileupload/SlotCreateTest.java | 2 +- .../httpfileupload/SlotRequestCreateTest.java | 4 +- .../FileTooLargeErrorProviderTest.java | 2 +- .../smackx/mam/MamFinProviderTest.java | 2 +- .../smackx/mam/MamPrefIQProviderTest.java | 18 +++--- .../smackx/mam/MamQueryIQProviderTest.java | 8 +-- .../smackx/mam/MamResultProviderTest.java | 14 ++--- .../smackx/mam/PreferencesTest.java | 4 +- .../smackx/mam/QueryArchiveTest.java | 4 +- .../smackx/mam/ResultsLimitTest.java | 2 +- ...CLightAffiliationsChangeExtensionTest.java | 12 ++-- .../smackx/muclight/MUCLightBlockingTest.java | 12 ++-- .../MUCLightChangeAffiliationsIQTest.java | 2 +- ...ightConfigurationsChangeExtensionTest.java | 12 ++-- .../smackx/muclight/MUCLightCreateIQTest.java | 2 +- .../smackx/muclight/MUCLightDestroyTest.java | 2 +- .../muclight/MUCLightGetAffiliationsTest.java | 6 +- .../muclight/MUCLightGetConfigsTest.java | 10 ++-- .../smackx/muclight/MUCLightInfoTest.java | 8 +-- .../muclight/MUCLightSetConfigsIQTest.java | 6 +- .../DisablePushNotificationsIQTest.java | 4 +- .../EnablePushNotificationsIQTest.java | 4 +- .../RemoteDisablingPushNotificationsTest.java | 16 +++--- .../address/MultipleRecipientManager.java | 13 ++--- .../address/packet/MultipleAddresses.java | 8 +-- .../smackx/amp/AMPDeliverCondition.java | 4 +- .../smackx/amp/AMPExpireAtCondition.java | 2 +- .../smackx/amp/AMPMatchResourceCondition.java | 4 +- .../smackx/amp/packet/AMPExtension.java | 10 ++-- .../blocking/BlockingCommandManager.java | 4 +- .../smackx/bookmarks/BookmarkManager.java | 2 +- .../bookmarks/BookmarkedConference.java | 2 +- .../smackx/bookmarks/BookmarkedURL.java | 6 +- .../smackx/bookmarks/Bookmarks.java | 10 ++-- .../smackx/bookmarks/SharedBookmark.java | 2 +- .../bytestreams/BytestreamListener.java | 2 +- .../smackx/bytestreams/BytestreamRequest.java | 8 +-- .../smackx/bytestreams/BytestreamSession.java | 10 ++-- .../ibb/InBandBytestreamManager.java | 2 +- .../ibb/InBandBytestreamSession.java | 2 +- .../ibb/provider/DataPacketProvider.java | 3 +- .../ibb/provider/OpenIQProvider.java | 2 +- .../socks5/Socks5BytestreamManager.java | 11 ++-- .../bytestreams/socks5/Socks5Client.java | 13 ++--- .../socks5/Socks5ClientForInitiator.java | 2 +- .../bytestreams/socks5/Socks5Proxy.java | 8 +-- .../bytestreams/socks5/packet/Bytestream.java | 2 +- .../smackx/caps/EntityCapsManager.java | 29 +++++----- .../cache/SimpleDirectoryPersistentCache.java | 16 +++--- .../caps/provider/CapsExtensionProvider.java | 4 +- .../smackx/chatstates/ChatStateManager.java | 3 +- .../smackx/commands/AdHocCommand.java | 2 +- .../smackx/commands/AdHocCommandNote.java | 4 +- .../smackx/commands/LocalCommand.java | 14 ++--- .../smackx/commands/RemoteCommand.java | 8 +-- .../commands/packet/AdHocCommandData.java | 6 +- .../smackx/disco/NodeInformationProvider.java | 4 +- .../smackx/disco/ServiceDiscoveryManager.java | 19 +++---- .../smackx/disco/packet/DiscoverInfo.java | 16 +++--- .../smackx/disco/packet/DiscoverItems.java | 2 +- .../disco/provider/DiscoverInfoProvider.java | 2 +- .../filetransfer/FaultTolerantNegotiator.java | 6 +- .../filetransfer/FileTransferManager.java | 4 +- .../filetransfer/FileTransferNegotiator.java | 8 +-- .../filetransfer/IBBTransferNegotiator.java | 2 +- .../Socks5TransferNegotiator.java | 6 +- .../smackx/filetransfer/StreamNegotiator.java | 8 +-- .../smackx/geoloc/GeoLocationManager.java | 2 +- .../smackx/geoloc/packet/GeoLocation.java | 2 +- .../smackx/iqlast/LastActivityManager.java | 2 +- .../smackx/iqprivate/PrivateDataManager.java | 2 +- .../iqprivate/packet/DefaultPrivateData.java | 8 +-- .../smackx/iqprivate/packet/PrivateData.java | 6 +- .../provider/PrivateDataProvider.java | 2 +- .../smackx/iqregister/AccountManager.java | 11 ++-- .../provider/RegistrationProvider.java | 4 +- .../smackx/iqversion/VersionManager.java | 2 +- .../packet/JivePropertiesExtension.java | 8 +-- .../JivePropertiesExtensionProvider.java | 2 +- .../muc/packet/GroupChatInvitation.java | 4 +- .../smackx/muc/packet/MUCAdmin.java | 8 +-- .../smackx/muc/packet/MUCInitialPresence.java | 10 ++-- .../smackx/muc/packet/MUCOwner.java | 8 +-- .../smackx/muc/packet/MUCUser.java | 18 +++--- .../smackx/offline/OfflineMessageManager.java | 8 +-- .../offline/packet/OfflineMessageRequest.java | 9 ++- .../jivesoftware/smackx/pep/PEPListener.java | 2 +- .../jivesoftware/smackx/pep/PEPManager.java | 2 +- .../jivesoftware/smackx/ping/PingManager.java | 2 +- .../smackx/privacy/PrivacyListListener.java | 4 +- .../smackx/privacy/PrivacyListManager.java | 4 +- .../smackx/privacy/packet/Privacy.java | 4 +- .../smackx/privacy/packet/PrivacyItem.java | 2 +- .../privacy/provider/PrivacyProvider.java | 4 +- .../smackx/pubsub/AccessModel.java | 4 +- .../smackx/pubsub/Affiliation.java | 4 +- .../pubsub/ChildrenAssociationPolicy.java | 2 +- .../smackx/pubsub/CollectionNode.java | 4 +- .../smackx/pubsub/ConfigurationEvent.java | 2 +- .../smackx/pubsub/ConfigureForm.java | 4 +- .../smackx/pubsub/EventElement.java | 6 +- .../smackx/pubsub/EventElementType.java | 4 +- .../jivesoftware/smackx/pubsub/FormNode.java | 4 +- .../smackx/pubsub/FormNodeType.java | 5 +- .../org/jivesoftware/smackx/pubsub/Item.java | 2 +- .../jivesoftware/smackx/pubsub/ItemReply.java | 2 +- .../smackx/pubsub/ItemsExtension.java | 2 +- .../jivesoftware/smackx/pubsub/LeafNode.java | 16 +++--- .../org/jivesoftware/smackx/pubsub/Node.java | 40 ++++++------- .../jivesoftware/smackx/pubsub/NodeType.java | 2 +- .../smackx/pubsub/PayloadItem.java | 2 +- .../smackx/pubsub/PubSubElementType.java | 2 +- .../smackx/pubsub/PubSubFeature.java | 4 +- .../smackx/pubsub/PubSubManager.java | 4 +- .../smackx/pubsub/PublishItem.java | 2 +- .../smackx/pubsub/PublishModel.java | 2 +- .../smackx/pubsub/RetractItem.java | 2 +- .../smackx/pubsub/SubscribeForm.java | 4 +- .../smackx/pubsub/packet/PubSubNamespace.java | 9 +-- .../pubsub/provider/FormNodeProvider.java | 2 +- .../smackx/pubsub/provider/ItemProvider.java | 4 +- .../pubsub/provider/PubSubProvider.java | 2 +- .../pubsub/provider/SimpleNodeProvider.java | 4 +- .../pubsub/provider/SubscriptionProvider.java | 2 +- .../provider/SubscriptionsProvider.java | 2 +- .../receipts/DeliveryReceiptManager.java | 6 +- .../jivesoftware/smackx/rsm/RSMManager.java | 8 +-- .../smackx/rsm/packet/RSMSet.java | 4 +- .../smackx/search/ReportedData.java | 24 ++++---- .../smackx/search/SimpleUserSearch.java | 8 +-- .../smackx/search/UserSearch.java | 6 +- .../smackx/search/UserSearchManager.java | 4 +- .../sharedgroups/SharedGroupManager.java | 2 +- .../sharedgroups/packet/SharedGroupsInfo.java | 2 +- .../smackx/si/packet/StreamInitiation.java | 18 +++--- .../smackx/time/EntityTimeManager.java | 5 +- .../smackx/vcardtemp/packet/VCard.java | 14 ++--- .../org/jivesoftware/smackx/xdata/Form.java | 8 +-- .../jivesoftware/smackx/xdata/FormField.java | 10 ++-- .../smackx/xdata/packet/DataForm.java | 16 +++--- .../xdata/provider/DataFormProvider.java | 4 +- .../smackx/xdatalayout/packet/DataLayout.java | 8 +-- .../smackx/xhtmlim/XHTMLManager.java | 2 +- .../smackx/xhtmlim/packet/XHTMLExtension.java | 2 +- .../smackx/blocking/BlockContactsIQTest.java | 6 +- .../blocking/BlockedErrorExtensionTest.java | 12 ++-- .../smackx/blocking/GetBlockingListTest.java | 10 ++-- .../blocking/UnblockContactsIQTest.java | 12 ++-- .../jivesoftware/smackx/bob/BoBIQTest.java | 4 +- .../bytestreams/ibb/CloseListenerTest.java | 4 +- .../bytestreams/ibb/DataListenerTest.java | 4 +- .../ibb/InBandBytestreamManagerTest.java | 10 ++-- .../ibb/InBandBytestreamRequestTest.java | 12 ++-- .../InBandBytestreamSessionMessageTest.java | 22 ++++---- .../ibb/InBandBytestreamSessionTest.java | 20 +++---- .../ibb/InitiationListenerTest.java | 14 ++--- .../bytestreams/ibb/packet/CloseTest.java | 2 +- .../ibb/packet/DataPacketExtensionTest.java | 2 +- .../bytestreams/ibb/packet/DataTest.java | 2 +- .../bytestreams/ibb/packet/OpenTest.java | 2 +- .../ibb/provider/OpenIQProviderTest.java | 2 +- .../socks5/InitiationListenerTest.java | 22 ++++---- .../socks5/Socks5ByteStreamManagerTest.java | 16 +++--- .../socks5/Socks5ByteStreamRequestTest.java | 24 ++++---- .../socks5/Socks5ClientForInitiatorTest.java | 18 +++--- .../bytestreams/socks5/Socks5ProxyTest.java | 6 +- .../smackx/forward/ForwardedTest.java | 2 +- .../smackx/geoloc/packet/GeoLocationTest.java | 4 +- .../provider/GeoLocationProviderTest.java | 20 +++---- .../smackx/iqlast/LastActivityTest.java | 2 +- .../smackx/iqversion/VersionTest.java | 4 +- .../JivePropertiesExtensionTest.java | 2 +- .../MessageCorrectExtensionTest.java | 10 ++-- .../smackx/muc/packet/MUCUserTest.java | 4 +- .../jivesoftware/smackx/ping/PingTest.java | 30 +++++----- .../privacy/provider/PrivacyProviderTest.java | 4 +- .../smackx/pubsub/ConfigureFormTest.java | 2 +- .../smackx/pubsub/ItemValidationTest.java | 8 +-- .../smackx/receipts/DeliveryReceiptTest.java | 5 +- .../rsm/provider/RSMSetProviderTest.java | 4 +- .../time/provider/TimeProviderTest.java | 4 +- .../smackx/vcardtemp/VCardTest.java | 20 +++---- .../smackx/xdata/packet/DataFormTest.java | 2 +- .../provider/XHTMLExtensionProviderTest.java | 2 +- .../java/org/jivesoftware/util/Protocol.java | 8 +-- .../org/jivesoftware/util/Verification.java | 12 ++-- .../org/jivesoftware/smack/chat/Chat.java | 8 +-- .../jivesoftware/smack/chat/ChatManager.java | 16 +++--- .../smack/roster/PresenceEventListener.java | 10 ++-- .../org/jivesoftware/smack/roster/Roster.java | 24 ++++---- .../smack/roster/RosterEntries.java | 2 +- .../smack/roster/RosterEntry.java | 8 +-- .../smack/roster/RosterGroup.java | 6 +- .../smack/roster/RosterListener.java | 8 +-- .../smack/roster/RosterLoadedListener.java | 4 +- .../smack/roster/SubscribeListener.java | 4 +- .../smack/roster/packet/RosterPacket.java | 10 ++-- .../rosterstore/DirectoryRosterStore.java | 3 +- .../smack/roster/rosterstore/RosterStore.java | 14 ++--- .../smack/chat/ChatConnectionTest.java | 8 +-- .../smack/roster/RosterOfflineTest.java | 4 +- .../jivesoftware/smack/roster/RosterTest.java | 6 +- .../smack/roster/RosterVersioningTest.java | 10 ++-- .../roster/SubscriptionPreApprovalTest.java | 2 +- .../java/org/jivesoftware/smack/ChatTest.java | 7 +-- .../roster/LowLevelRosterIntegrationTest.java | 2 +- .../FileTransferIntegrationTest.java | 6 +- .../HttpFileUploadIntegrationTest.java | 3 +- .../smackx/iot/IoTControlIntegrationTest.java | 2 +- .../smackx/iot/IoTDataIntegrationTest.java | 2 +- .../muc/MultiUserChatIntegrationTest.java | 4 +- .../MultiUserChatLowLevelIntegrationTest.java | 2 +- .../omemo/AbstractOmemoIntegrationTest.java | 2 +- .../omemo/OmemoSessionRenegotiationTest.java | 2 +- .../smackx/omemo/OmemoStoreTest.java | 6 +- .../inttest/util/ResultSyncPointTest.java | 5 +- .../smack/java7/XmppHostnameVerifier.java | 2 +- .../util/stringencoder/java7/Base64.java | 8 +-- .../java7/Java7Base64Encoder.java | 4 +- .../java7/Java7Base64UrlSafeEncoder.java | 4 +- .../smackx/jingleold/ContentNegotiator.java | 16 +++--- .../smackx/jingleold/JingleActionEnum.java | 2 +- .../smackx/jingleold/JingleManager.java | 24 ++++---- .../smackx/jingleold/JingleNegotiator.java | 6 +- .../smackx/jingleold/JingleSession.java | 32 +++++------ .../jingleold/JingleSessionRequest.java | 12 ++-- .../jingleold/JingleSessionStateEnded.java | 2 +- .../jingleold/JingleSessionStateUnknown.java | 4 +- .../CreatedJingleSessionListener.java | 2 +- .../listeners/JingleMediaInfoListener.java | 10 ++-- .../listeners/JingleMediaListener.java | 4 +- .../listeners/JingleSessionListener.java | 12 ++-- .../JingleSessionRequestListener.java | 4 +- .../listeners/JingleTransportListener.java | 6 +- .../jingleold/media/JingleMediaManager.java | 2 +- .../jingleold/media/JingleMediaSession.java | 10 ++-- .../jingleold/media/MediaNegotiator.java | 28 ++++------ .../media/MediaReceivedListener.java | 2 +- .../smackx/jingleold/media/PayloadType.java | 2 +- .../smackx/jingleold/mediaimpl/JMFInit.java | 2 +- .../jingleold/mediaimpl/jmf/AudioChannel.java | 8 +-- .../mediaimpl/jmf/AudioMediaSession.java | 10 ++-- .../mediaimpl/jmf/AudioReceiver.java | 6 +- .../mediaimpl/jmf/JmfMediaManager.java | 4 +- .../mediaimpl/jspeex/AudioMediaSession.java | 12 ++-- .../mediaimpl/jspeex/SpeexMediaManager.java | 2 +- .../mediaimpl/multi/MultiMediaManager.java | 6 +- .../sshare/ScreenShareMediaManager.java | 2 +- .../mediaimpl/sshare/ScreenShareSession.java | 12 ++-- .../sshare/api/AbstractBufferedImageOp.java | 8 +-- .../mediaimpl/sshare/api/ImageDecoder.java | 2 +- .../mediaimpl/sshare/api/ImageEncoder.java | 2 +- .../sshare/api/OctTreeQuantizer.java | 4 +- .../mediaimpl/sshare/api/Quantizer.java | 8 +-- .../mediaimpl/test/TestMediaManager.java | 4 +- .../mediaimpl/test/TestMediaSession.java | 8 +-- .../smackx/jingleold/nat/BridgedResolver.java | 10 ++-- .../jingleold/nat/DatagramListener.java | 2 +- .../smackx/jingleold/nat/ICECandidate.java | 2 +- .../smackx/jingleold/nat/ICEResolver.java | 6 +- .../jingleold/nat/JingleTransportManager.java | 2 +- .../smackx/jingleold/nat/RTPBridge.java | 2 +- .../smackx/jingleold/nat/ResultListener.java | 2 +- .../smackx/jingleold/nat/STUN.java | 2 +- .../smackx/jingleold/nat/STUNResolver.java | 6 +- .../jingleold/nat/TransportCandidate.java | 18 +++--- .../jingleold/nat/TransportNegotiator.java | 33 +++++------ .../jingleold/nat/TransportResolver.java | 30 +++++----- .../nat/TransportResolverListener.java | 16 +++--- .../smackx/jingleold/packet/Jingle.java | 10 ++-- .../jingleold/packet/JingleContent.java | 6 +- .../packet/JingleContentDescription.java | 6 +- .../jingleold/packet/JingleContentInfo.java | 2 +- .../jingleold/packet/JingleDescription.java | 6 +- .../jingleold/packet/JingleTransport.java | 10 ++-- .../jingleold/provider/JingleProvider.java | 3 +- .../smackx/workgroup/MetaData.java | 2 +- .../smackx/workgroup/QueueUser.java | 8 +-- .../WorkgroupInvitationListener.java | 2 +- .../smackx/workgroup/agent/Agent.java | 4 +- .../smackx/workgroup/agent/AgentRoster.java | 12 ++-- .../workgroup/agent/AgentRosterListener.java | 6 +- .../smackx/workgroup/agent/AgentSession.java | 48 ++++++++-------- .../workgroup/agent/InvitationRequest.java | 6 +- .../smackx/workgroup/agent/Offer.java | 18 +++--- .../smackx/workgroup/agent/OfferListener.java | 4 +- .../workgroup/agent/QueueUsersListener.java | 8 +-- .../smackx/workgroup/agent/RevokedOffer.java | 14 ++--- .../workgroup/agent/TranscriptManager.java | 4 +- .../agent/TranscriptSearchManager.java | 6 +- .../workgroup/agent/TransferRequest.java | 6 +- .../smackx/workgroup/agent/UserRequest.java | 2 +- .../ext/history/AgentChatHistory.java | 2 +- .../workgroup/ext/macros/MacroGroup.java | 4 +- .../smackx/workgroup/packet/AgentStatus.java | 14 ++--- .../workgroup/packet/AgentStatusRequest.java | 6 +- .../workgroup/packet/AgentWorkgroups.java | 4 +- .../workgroup/packet/OccupantsInfo.java | 10 ++-- .../packet/OfferRequestProvider.java | 14 ++--- .../workgroup/packet/OfferRevokeProvider.java | 8 +-- .../smackx/workgroup/packet/QueueDetails.java | 4 +- .../workgroup/packet/QueueOverview.java | 2 +- .../smackx/workgroup/packet/QueueUpdate.java | 4 +- .../workgroup/packet/RoomInvitation.java | 2 +- .../smackx/workgroup/packet/SessionID.java | 2 +- .../smackx/workgroup/packet/Transcript.java | 10 ++-- .../workgroup/packet/TranscriptProvider.java | 2 +- .../workgroup/packet/TranscriptSearch.java | 2 +- .../smackx/workgroup/packet/Transcripts.java | 20 +++---- .../workgroup/packet/TranscriptsProvider.java | 6 +- .../smackx/workgroup/packet/UserID.java | 2 +- .../packet/WorkgroupInformation.java | 2 +- .../workgroup/settings/ChatSettings.java | 4 +- .../workgroup/settings/GenericSettings.java | 2 +- .../smackx/workgroup/user/QueueListener.java | 8 +-- .../smackx/workgroup/user/Workgroup.java | 56 +++++++++---------- .../util/ListenerEventDispatcher.java | 4 +- .../smackx/workgroup/util/MetaDataUtils.java | 12 ++-- .../smackx/xevent/MessageEventManager.java | 11 ++-- .../MessageEventNotificationListener.java | 10 ++-- .../xevent/MessageEventRequestListener.java | 8 +-- .../smackx/xevent/packet/MessageEvent.java | 2 +- .../smackx/xroster/RemoteRosterEntry.java | 6 +- .../xroster/RosterExchangeListener.java | 2 +- .../smackx/xroster/RosterExchangeManager.java | 11 ++-- .../smackx/xroster/packet/RosterExchange.java | 4 +- .../provider/RosterExchangeProvider.java | 6 +- .../igniterealtime/smack/smackrepl/IoT.java | 12 ++-- .../smack/smackrepl/TlsTest.java | 2 +- .../util/dns/dnsjava/DNSJavaResolver.java | 4 +- .../smack/util/dns/javax/JavaxResolver.java | 2 +- .../util/dns/minidns/MiniDnsResolver.java | 2 +- .../smack/sasl/javax/SASLJavaXMechanism.java | 2 +- .../smack/sasl/javax/SASLDigestMD5Test.java | 5 +- .../sasl/provided/SASLDigestMD5Mechanism.java | 4 +- .../sasl/provided/SASLPlainMechanism.java | 2 +- .../sasl/provided/SASLDigestMD5Test.java | 5 +- .../smack/sm/StreamManagementException.java | 2 +- .../sm/predicates/ShortcutPredicates.java | 2 +- .../smack/tcp/BundleAndDeferCallback.java | 2 +- .../smack/tcp/XMPPTCPConnection.java | 50 ++++++++--------- .../smack/tcp/PacketWriterTest.java | 4 +- 422 files changed, 1404 insertions(+), 1444 deletions(-) create mode 100644 smack-core/src/test/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java index 4b8cba52f..c3f4f54fe 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java @@ -341,7 +341,7 @@ public abstract class ConnectionConfiguration { * An enumeration for TLS security modes that are available when making a connection * to the XMPP server. */ - public static enum SecurityMode { + public enum SecurityMode { /** * Security via TLS encryption is required in order to connect. If the server @@ -492,7 +492,7 @@ public abstract class ConnectionConfiguration { *

* This is an abstract class that uses the builder design pattern and the "getThis() trick" to recover the type of * the builder in a class hierarchies with a self-referential generic supertype. Otherwise chaining of build - * instructions from the superclasses followed by build instructions of a sublcass would not be possible, because + * instructions from the superclasses followed by build instructions of a subclass would not be possible, because * the superclass build instructions would return the builder of the superclass and not the one of the subclass. You * can read more about it a Angelika Langer's Generics FAQ, especially the entry What is the @@ -646,7 +646,7 @@ public abstract class ConnectionConfiguration { public B setPort(int port) { if (port < 0 || port > 65535) { throw new IllegalArgumentException( - "Port must be a 16-bit unsiged integer (i.e. between 0-65535. Port was: " + port); + "Port must be a 16-bit unsigned integer (i.e. between 0-65535. Port was: " + port); } this.port = port; return getThis(); @@ -930,7 +930,7 @@ public abstract class ConnectionConfiguration { Set blacklistedMechanisms = SASLAuthentication.getBlacklistedSASLMechanisms(); for (String mechanism : saslMechanisms) { if (!SASLAuthentication.isSaslMechanismRegistered(mechanism)) { - throw new IllegalArgumentException("SASL " + mechanism + " is not avaiable. Consider registering it with Smack"); + throw new IllegalArgumentException("SASL " + mechanism + " is not available. Consider registering it with Smack"); } if (blacklistedMechanisms.contains(mechanism)) { throw new IllegalArgumentException("SALS " + mechanism + " is blacklisted."); diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionCreationListener.java b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionCreationListener.java index 5b724078f..f798b803a 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionCreationListener.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionCreationListener.java @@ -33,6 +33,6 @@ public interface ConnectionCreationListener { * * @param connection the newly created connection. */ - public void connectionCreated(XMPPConnection connection); + void connectionCreated(XMPPConnection connection); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionListener.java b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionListener.java index 5a677df31..c096e48b2 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionListener.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionListener.java @@ -37,7 +37,7 @@ public interface ConnectionListener { * * @param connection the XMPPConnection which successfully connected to its endpoint. */ - public void connected(XMPPConnection connection); + void connected(XMPPConnection connection); /** * Notification that the connection has been authenticated. @@ -45,12 +45,12 @@ public interface ConnectionListener { * @param connection the XMPPConnection which successfully authenticated. * @param resumed true if a previous XMPP session's stream was resumed. */ - public void authenticated(XMPPConnection connection, boolean resumed); + void authenticated(XMPPConnection connection, boolean resumed); /** * Notification that the connection was closed normally. */ - public void connectionClosed(); + void connectionClosed(); /** * Notification that the connection was closed due to an exception. When @@ -59,7 +59,7 @@ public interface ConnectionListener { * * @param e the exception. */ - public void connectionClosedOnError(Exception e); + void connectionClosedOnError(Exception e); /** * The connection has reconnected successfully to the server. Connections will @@ -68,7 +68,7 @@ public interface ConnectionListener { */ // TODO: Remove in Smack 4.3 @Deprecated - public void reconnectionSuccessful(); + void reconnectionSuccessful(); // The next two methods *must* only be invoked by ReconnectionManager @@ -83,7 +83,7 @@ public interface ConnectionListener { */ // TODO: Remove in Smack 4.3 @Deprecated - public void reconnectingIn(int seconds); + void reconnectingIn(int seconds); /** * An attempt to connect to the server has failed. The connection will keep trying reconnecting to the server in a @@ -97,5 +97,5 @@ public interface ConnectionListener { */ // TODO: Remove in Smack 4.3 @Deprecated - public void reconnectionFailed(Exception e); + void reconnectionFailed(Exception e); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ExceptionCallback.java b/smack-core/src/main/java/org/jivesoftware/smack/ExceptionCallback.java index cc1b98bdb..0a700e30e 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ExceptionCallback.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ExceptionCallback.java @@ -18,6 +18,6 @@ package org.jivesoftware.smack; public interface ExceptionCallback { - public void processException(Exception exception); + void processException(Exception exception); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/Manager.java b/smack-core/src/main/java/org/jivesoftware/smack/Manager.java index 47f5e0ade..0b7924eb3 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/Manager.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/Manager.java @@ -28,7 +28,7 @@ public abstract class Manager { public Manager(XMPPConnection connection) { Objects.requireNonNull(connection, "XMPPConnection must not be null"); - weakConnection = new WeakReference(connection); + weakConnection = new WeakReference<>(connection); } protected final XMPPConnection connection() { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionListener.java b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionListener.java index c404008ca..87eee0435 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionListener.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionListener.java @@ -34,7 +34,7 @@ public interface ReconnectionListener { * * @param seconds remaining seconds before attempting a reconnection. */ - public void reconnectingIn(int seconds); + void reconnectingIn(int seconds); /** * An attempt to connect to the server has failed. The connection will keep trying reconnecting to the server in a @@ -46,5 +46,5 @@ public interface ReconnectionListener { * * @param e the exception that caused the reconnection to fail. */ - public void reconnectionFailed(Exception e); + void reconnectionFailed(Exception e); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java index 18cbcc1dc..0f7d65dec 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java @@ -189,7 +189,7 @@ public final class ReconnectionManager { private Thread reconnectionThread; private ReconnectionManager(AbstractXMPPConnection connection) { - weakRefConnection = new WeakReference(connection); + weakRefConnection = new WeakReference<>(connection); reconnectionRunnable = new Runnable() { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java b/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java index 8c4cfe88f..8e8418b23 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java @@ -64,9 +64,9 @@ public final class SASLAuthentication { private static final Logger LOGGER = Logger.getLogger(SASLAuthentication.class.getName()); - private static final List REGISTERED_MECHANISMS = new ArrayList(); + private static final List REGISTERED_MECHANISMS = new ArrayList<>(); - private static final Set BLACKLISTED_MECHANISMS = new HashSet(); + private static final Set BLACKLISTED_MECHANISMS = new HashSet<>(); static { // Blacklist SCRAM-SHA-1-PLUS for now. @@ -91,7 +91,7 @@ public final class SASLAuthentication { * @return the registered SASLMechanism sorted by the level of preference. */ public static Map getRegisterdSASLMechanisms() { - Map answer = new LinkedHashMap(); + Map answer = new LinkedHashMap<>(); synchronized (REGISTERED_MECHANISMS) { for (SASLMechanism mechanism : REGISTERED_MECHANISMS) { answer.put(mechanism.getClass().getName(), mechanism.toString()); @@ -132,9 +132,9 @@ public final class SASLAuthentication { return false; } - public static boolean blacklistSASLMechanism(String mechansim) { + public static boolean blacklistSASLMechanism(String mechanism) { synchronized (BLACKLISTED_MECHANISMS) { - return BLACKLISTED_MECHANISMS.add(mechansim); + return BLACKLISTED_MECHANISMS.add(mechanism); } } @@ -356,8 +356,8 @@ public final class SASLAuthentication { throw new SmackException( "No supported and enabled SASL Mechanism provided by server. " + "Server announced mechanisms: " + serverMechanisms + ". " + - "Registerd SASL mechanisms with Smack: " + REGISTERED_MECHANISMS + ". " + - "Enabled SASL mechansisms for this connection: " + configuration.getEnabledSaslMechanisms() + ". " + + "Registered SASL mechanisms with Smack: " + REGISTERED_MECHANISMS + ". " + + "Enabled SASL mechanisms for this connection: " + configuration.getEnabledSaslMechanisms() + ". " + "Blacklisted SASL mechanisms: " + BLACKLISTED_MECHANISMS + '.' ); // @formatter;on 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 71ec63ec5..7c4f8fd5f 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java @@ -55,11 +55,11 @@ public final class SmackConfiguration { private static int defaultPacketReplyTimeout = 5000; private static int packetCollectorSize = 5000; - private static List defaultMechs = new ArrayList(); + private static List defaultMechs = new ArrayList<>(); - static Set disabledSmackClasses = new HashSet(); + static Set disabledSmackClasses = new HashSet<>(); - final static List compressionHandlers = new ArrayList(2); + final static List compressionHandlers = new ArrayList<>(2); static boolean smackInitialized = false; @@ -67,7 +67,7 @@ public final class SmackConfiguration { /** * Value that indicates whether debugging is enabled. When enabled, a debug - * window will apear for each new connection that will contain the following + * window will appear for each new connection that will contain the following * information: