diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2ee71d93..61df7da98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,5 @@ name: CI -env: - GRADLE_VERSION: 6.7.1 - on: [push, pull_request] jobs: @@ -41,12 +38,6 @@ jobs: key: gradle-caches-${{ hashFiles('**/build.gradle') }} restore-keys: gradle-caches - - name: Cache Gradle Binary - uses: actions/cache@v2 - with: - path: | - ~/gradle-bin-${GRADLE_VERSION}/ - key: gradle-bin-${GRADLE_VERSION} - name: Cache Android SDK uses: actions/cache@v2 with: @@ -57,11 +48,6 @@ jobs: android- # Pre-reqs - - name: Grab gradle wrapper - run: | - wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip - unzip gradle-${GRADLE_VERSION}-all.zip - echo "PATH_TO_GRADLE=./gradle-${GRADLE_VERSION}/bin/gradle" >> $GITHUB_ENV - name: Install GraphViz run: sudo apt update && sudo apt install graphviz - name: Install Android SDK Manager @@ -72,21 +58,21 @@ jobs: # Testing - name: Gradle Check - run: ${PATH_TO_GRADLE} check --stacktrace + run: ./gradlew check --stacktrace # Test local publish - name: Gradle publish - run: ${PATH_TO_GRADLE} publishToMavenLocal --stacktrace + run: ./gradlew publishToMavenLocal --stacktrace # Javadoc - name: Javadoc if: ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} - run: ${PATH_TO_GRADLE} javadocAll --stacktrace + run: ./gradlew javadocAll --stacktrace # Test Coverage Report - name: Jacoco Test Coverage if: ${{ matrix.java == env.PRIMARY_JAVA_VERSION }} - run: ${PATH_TO_GRADLE} jacocoRootReport coveralls + run: ./gradlew jacocoRootReport coveralls env: COVERALLS_REPO_TOKEN: S2ecSJja2cKJa9yv45C8ZFPohXuRrTXKd diff --git a/build.gradle b/build.gradle index 8ec8597eb..b38e2fab2 100644 --- a/build.gradle +++ b/build.gradle @@ -148,7 +148,7 @@ allprojects { smackMinAndroidSdk = 19 junitVersion = '5.7.1' commonsIoVersion = '2.6' - bouncyCastleVersion = '1.69' + bouncyCastleVersion = '1.70' guavaVersion = '30.1-jre' mockitoVersion = '3.7.7' orgReflectionsVersion = '0.9.11' diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..e708b1c02 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..442d9132e --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 000000000..4f906e0c8 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# 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 +# +# https://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. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..ac1b06f93 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java index f6fe91544..a4c2db65e 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/BOSHConfiguration.java @@ -77,7 +77,8 @@ public final class BOSHConfiguration extends ConnectionConfiguration { } public URI getURI() throws URISyntaxException { - return new URI((https ? "https://" : "http://") + this.host + ":" + this.port + file); + String uri = (https ? "https://" : "http://") + getHostString() + ":" + this.port + file; + return new URI(uri); } public Map getHttpHeaders() { 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 61db14365..244c741da 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -1,6 +1,6 @@ /** * - * Copyright 2009 Jive Software, 2018-2021 Florian Schmaus. + * Copyright 2009 Jive Software, 2018-2022 Florian Schmaus. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -694,10 +694,10 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { } /** - * We use an extra object for {@link #notifyWaitingThreads()} and {@link #waitForConditionOrConnectionException(Supplier)}, because all state + * We use an extra object for {@link #notifyWaitingThreads()} and {@link #waitFor(Supplier)}, because all state * changing methods of the connection are synchronized using the connection instance as monitor. If we now would * also use the connection instance for the internal process to wait for a condition, the {@link Object#wait()} - * would leave the monitor when it waites, which would allow for another potential call to a state changing function + * would leave the monitor when it waits, which would allow for another potential call to a state changing function * to proceed. */ private final Object internalMonitor = new Object(); @@ -722,22 +722,18 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { return true; } - protected final boolean waitForConditionOrConnectionException(Supplier condition) throws InterruptedException { - return waitFor(() -> condition.get().booleanValue() || hasCurrentConnectionException()); - } - - protected final void waitForConditionOrConnectionException(Supplier condition, String waitFor) throws InterruptedException, NoResponseException { - boolean success = waitForConditionOrConnectionException(condition); - if (!success) { - throw NoResponseException.newWith(this, waitFor); - } - } - protected final void waitForConditionOrThrowConnectionException(Supplier condition, String waitFor) throws InterruptedException, SmackException, XMPPException { - waitForConditionOrConnectionException(condition, waitFor); + boolean success = waitFor(() -> condition.get().booleanValue() || hasCurrentConnectionException()); if (hasCurrentConnectionException()) { throwCurrentConnectionException(); } + + // If there was no connection exception and we still did not successfully wait for the condition to hold, then + // we ran into a no-response timeout. + if (!success) { + throw NoResponseException.newWith(this, waitFor); + } + // Otherwise we successfully awaited the condition. } protected Resourcepart bindResourceAndEstablishSession(Resourcepart resource) @@ -2010,11 +2006,18 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { }, timeout, TimeUnit.MILLISECONDS); addAsyncStanzaListener(stanzaListener, replyFilter); - try { - sendStanza(stanza); - } - catch (NotConnectedException | InterruptedException exception) { - future.setException(exception); + Runnable sendOperation = () -> { + try { + sendStanza(stanza); + } + catch (NotConnectedException | InterruptedException exception) { + future.setException(exception); + } + }; + if (SmackConfiguration.TRUELY_ASYNC_SENDS) { + Async.go(sendOperation); + } else { + sendOperation.run(); } return future; 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 e8689d24f..9561a158d 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java @@ -302,6 +302,16 @@ public abstract class ConnectionConfiguration { return new SmackTlsContext(context, daneVerifier); } + public String getHostString() { + if (hostAddress != null) { + return hostAddress.toString(); + } + if (host != null) { + return host.toString(); + } + return xmppServiceDomain.toString(); + } + public DnsName getHost() { return host; } 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 b93ec12cc..907a288b6 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SmackConfiguration.java @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software, 2018-2021 Florian Schmaus. + * Copyright 2003-2007 Jive Software, 2018-2022 Florian Schmaus. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -386,4 +386,14 @@ public final class SmackConfiguration { } } } + + /** + * If enabled, causes {@link AbstractXMPPConnection} to create a thread for every asynchronous send operation. This + * is meant to work-around a shortcoming of Smack 4.4, where certain send operations are not asynchronous even if + * they should be. This is an expert setting, do not toggle if you do not understand the consequences or have been + * told to do so. Note that it is expected that this will not be needed in future Smack versions. + * + * @since 4.4.6 + */ + public static boolean TRUELY_ASYNC_SENDS = false; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/BindIQProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/BindIQProvider.java index 4bd8e9704..51f3093ec 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/BindIQProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/BindIQProvider.java @@ -19,6 +19,7 @@ package org.jivesoftware.smack.provider; import java.io.IOException; import org.jivesoftware.smack.packet.Bind; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -27,10 +28,10 @@ import org.jxmpp.jid.EntityFullJid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Resourcepart; -public class BindIQProvider extends IQProvider { +public class BindIQProvider extends IqProvider { @Override - public Bind parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public Bind parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String name; Bind bind = null; outerloop: while (true) { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProviderInfo.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProviderInfo.java index ec9baee99..273970710 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProviderInfo.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProviderInfo.java @@ -28,7 +28,7 @@ import org.jivesoftware.smack.packet.IQ; public final class IQProviderInfo extends AbstractProviderInfo { /** - * Defines an IQ provider which implements the IQProvider interface. + * Defines an IQ provider which implements the {@link IqProvider} interface. * * @param elementName Element that provider parses. * @param namespace Namespace that provider parses. 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 b5885531e..d2383a2b5 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 @@ -21,6 +21,7 @@ import java.lang.reflect.InvocationTargetException; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -42,7 +43,7 @@ public class IntrospectionProvider{ */ // TODO: Remove in Smack 4.6. @Deprecated - public abstract static class IQIntrospectionProvider extends IQProvider { + public abstract static class IQIntrospectionProvider extends IqProvider { private final Class elementClass; protected IQIntrospectionProvider(Class elementClass) { @@ -51,7 +52,7 @@ public class IntrospectionProvider{ @SuppressWarnings("unchecked") @Override - public I parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public I parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { try { return (I) parseWithIntrospection(elementClass, parser, initialDepth); } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IqProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IqProvider.java index aadaf92ac..77f355263 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IqProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IqProvider.java @@ -23,9 +23,17 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IqData; 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; +/** + * An abstract class for parsing custom {@link IQ} packets. Each IqProvider must be registered with the {@link + * ProviderManager} for it to be used. Every implementation of this abstract class must have a public, + * no-argument constructor. + * + * @param the {@link IQ} that is parsed by implementations. + */ public abstract class IqProvider extends AbstractProvider { public final I parse(XmlPullParser parser, IqData iqCommon) @@ -40,6 +48,8 @@ public abstract class IqProvider extends AbstractProvider { I i = wrapExceptions(() -> parse(parser, initialDepth, iqData, xmlEnvironment)); + // Parser should be at end tag of the consumed/parsed element + ParserUtils.forwardToEndTagOfDepth(parser, initialDepth); return i; } diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/LegacyIQProvider.java similarity index 94% rename from smack-core/src/main/java/org/jivesoftware/smack/provider/IQProvider.java rename to smack-core/src/main/java/org/jivesoftware/smack/provider/LegacyIQProvider.java index 069036588..76bec79b6 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IQProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/LegacyIQProvider.java @@ -37,8 +37,11 @@ import org.jivesoftware.smack.xml.XmlPullParserException; * abstract class must have a public, no-argument constructor. * * @author Matt Tucker + * @deprecated Use {@link IqProvider} instead */ -public abstract class IQProvider extends IqProvider { +@Deprecated +// TODO: Remove in Smack 4.6. +public abstract class LegacyIQProvider extends IqProvider { public final I parse(XmlPullParser parser) throws IOException, XmlPullParserException, SmackParsingException { return parse(parser, (XmlEnvironment) null); 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 6d3ea9f76..11da95318 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 @@ -30,7 +30,7 @@ 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 + * Loads the {@link IqProvider} and {@link ExtensionElementProvider} information from a standard provider file in preparation * for loading into the {@link ProviderManager}. * * @author Robin Collier @@ -76,7 +76,7 @@ public class ProviderFileLoader implements ProviderLoader { switch (typeName) { case "iqProvider": // Attempt to load the provider class and then create - // a new instance if it's an IQProvider. Otherwise, if it's + // a new instance if it's an IqProvider. Otherwise, if it's // an IQ class, add the class object itself, then we'll use // reflection later to create instances of the class. // Add the provider to the map. @@ -85,7 +85,7 @@ public class ProviderFileLoader implements ProviderLoader { iqProviders.add(new IQProviderInfo(elementName, namespace, iqProvider)); } else { - exceptions.add(new IllegalArgumentException(className + " is not a IQProvider")); + exceptions.add(new IllegalArgumentException(className + " is not a IqProvider")); } break; case "extensionProvider": diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderManager.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderManager.java index 45260407e..0943f31d6 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderManager.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/ProviderManager.java @@ -34,11 +34,11 @@ import org.jivesoftware.smack.util.XmppElementUtil; /** * Manages providers for parsing custom XML sub-documents of XMPP packets. Two types of * providers exist:
    - *
  • IQProvider -- parses IQ requests into Java objects. + *
  • IqProvider -- parses IQ requests into Java objects. *
  • PacketExtension -- parses XML sub-documents attached to packets into * PacketExtension instances.
* - * IQProvider

+ * IqProvider

* * By default, Smack only knows how to process IQ packets with sub-packets that * are in a few namespaces such as:

    @@ -63,8 +63,8 @@ import org.jivesoftware.smack.util.XmppElementUtil; * * Each IQ provider is associated with an element name and a namespace. If multiple provider * entries attempt to register to handle the same namespace, the first entry loaded from the - * classpath will take precedence. The IQ provider class can either implement the IQProvider - * interface, or extend the IQ class. In the former case, each IQProvider is responsible for + * classpath will take precedence. The IQ provider class can either implement the IqProvider + * interface, or extend the IQ class. In the former case, each IqProvider is responsible for * parsing the raw XML stream to create an IQ instance. In the latter case, bean introspection * is used to try to automatically set properties of the IQ instance using the values found * in the IQ stanza XML. For example, an XMPP time stanza resembles the following: @@ -173,11 +173,11 @@ public final class ProviderManager { } /** - * Returns an unmodifiable collection of all IQProvider instances. Each object - * in the collection will either be an IQProvider instance, or a Class object - * that implements the IQProvider interface. + * Returns an unmodifiable collection of all IqProvider instances. Each object + * in the collection will either be an IqProvider instance, or a Class object + * that implements the IqProvider interface. * - * @return all IQProvider instances. + * @return all IqProvider instances. */ public static List> getIQProviders() { List> providers = new ArrayList<>(iqProviders.size()); @@ -186,7 +186,7 @@ public final class ProviderManager { } /** - * Adds an IQ provider (must be an instance of IQProvider or Class object that is an IQ) + * Adds an IQ provider (must be an instance of IqProvider or Class object that is an IQ) * with the specified element name and name space. The provider will override any providers * loaded through the classpath. * 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 b66024509..c41f06995 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 @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Collection; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.FileUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -60,10 +61,10 @@ public class ProviderConfigTest { Assert.assertNotNull(ProviderManager.getIQProvider("provider", "test:file_provider")); } - public static class TestIQProvider extends IQProvider { + public static class TestIQProvider extends IqProvider { @Override - public IQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { return null; } 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 1c005322d..9cd2c82a1 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 @@ -20,6 +20,7 @@ import static org.junit.Assert.assertTrue; import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.xml.XmlPullParser; @@ -37,10 +38,10 @@ public class ProviderManagerTest { assertTrue(SmackConfiguration.isSmackInitialized()); } - public static class TestIQProvider extends IQProvider { + public static class TestIQProvider extends IqProvider { @Override - public IQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { return null; } 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 6a02e12b1..701a386f2 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 @@ -18,18 +18,19 @@ package org.jivesoftware.smackx.dox.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.dox.element.DnsIq; -public class DnsIqProvider extends IQProvider { +public class DnsIqProvider extends IqProvider { @Override - public DnsIq parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public DnsIq parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { String base64DnsMessage = parser.nextText(); return new DnsIq(base64DnsMessage); 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 18cbf9fd0..8efcb0dfe 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 @@ -20,7 +20,7 @@ import java.io.IOException; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -35,7 +35,7 @@ import org.jivesoftware.smackx.shim.provider.HeadersProvider; * @author Andriy Tsykholyas * @see XEP-0332: HTTP over XMPP transport */ -public abstract class AbstractHttpOverXmppProvider extends IQProvider { +public abstract class AbstractHttpOverXmppProvider extends IqProvider { private static final String ELEMENT_DATA = "data"; private static final String ELEMENT_TEXT = "text"; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java index 94e36a88f..c86d60807 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.hoxt.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.util.ParserUtils; @@ -40,7 +41,7 @@ public class HttpOverXmppReqProvider extends AbstractHttpOverXmppProviderXEP-0363: HTTP File Upload */ -public class SlotProvider extends IQProvider { +public class SlotProvider extends IqProvider { @Override - public Slot parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public Slot parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { final String namespace = parser.getNamespace(); final UploadService.Version version = HttpFileUploadManager.namespaceToVersion(namespace); 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 952ebcdd8..73f30de7f 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -32,10 +33,10 @@ import org.jivesoftware.smackx.iot.control.element.SetDoubleData; import org.jivesoftware.smackx.iot.control.element.SetIntData; import org.jivesoftware.smackx.iot.control.element.SetLongData; -public class IoTSetRequestProvider extends IQProvider { +public class IoTSetRequestProvider extends IqProvider { @Override - public IoTSetRequest parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public IoTSetRequest parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List data = new ArrayList<>(4); outerloop: while (true) { final XmlPullParser.Event eventType = parser.next(); 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 8ed282fe1..dd28210ea 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 @@ -16,16 +16,17 @@ */ package org.jivesoftware.smackx.iot.control.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.control.element.IoTSetResponse; -public class IoTSetResponseProvider extends IQProvider { +public class IoTSetResponseProvider extends IqProvider { @Override - public IoTSetResponse parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IoTSetResponse parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { return new IoTSetResponse(); } 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 a56b8ae8c..96252d1bf 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 @@ -18,17 +18,18 @@ package org.jivesoftware.smackx.iot.data.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class IoTDataReadOutAcceptedProvider extends IQProvider { +public class IoTDataReadOutAcceptedProvider extends IqProvider { @Override - public IoTDataReadOutAccepted parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws IOException { + public IoTDataReadOutAccepted parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws IOException { int seqNr = ParserUtils.getIntegerAttributeOrThrow(parser, "seqnr", "IoT data request without sequence number"); boolean queued = ParserUtils.getBooleanAttribute(parser, "queued", false); return new IoTDataReadOutAccepted(seqNr, queued); 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 8c41c072f..130874f29 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 @@ -18,17 +18,18 @@ package org.jivesoftware.smackx.iot.data.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class IoTDataRequestProvider extends IQProvider { +public class IoTDataRequestProvider extends IqProvider { @Override - public IoTDataRequest parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws IOException { + public IoTDataRequest parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws IOException { int seqNr = ParserUtils.getIntegerAttributeOrThrow(parser, "seqnr", "IoT data request without sequence number"); boolean momentary = ParserUtils.getBooleanAttribute(parser, "momentary", false); return new IoTDataRequest(seqNr, momentary); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTClaimedProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTClaimedProvider.java index 3c57fefef..db5f317a3 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTClaimedProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/iot/discovery/provider/IoTClaimedProvider.java @@ -16,8 +16,9 @@ */ package org.jivesoftware.smackx.iot.discovery.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -28,10 +29,10 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -public class IoTClaimedProvider extends IQProvider { +public class IoTClaimedProvider extends IqProvider { @Override - public IoTClaimed parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmppStringprepException { + public IoTClaimed parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmppStringprepException { Jid jid = ParserUtils.getJidAttribute(parser); NodeInfo nodeInfo = NodeInfoParser.parse(parser); return new IoTClaimed(jid, nodeInfo); 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 713eb1df1..2d2e4a026 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 @@ -16,8 +16,9 @@ */ package org.jivesoftware.smackx.iot.discovery.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -28,10 +29,10 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -public class IoTDisownProvider extends IQProvider { +public class IoTDisownProvider extends IqProvider { @Override - public IoTDisown parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmppStringprepException { + public IoTDisown parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmppStringprepException { Jid jid = ParserUtils.getJidAttribute(parser); NodeInfo nodeInfo = NodeInfoParser.parse(parser); return new IoTDisown(jid, nodeInfo); 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 ed33c28ce..ae4f1b0d1 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 @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.iot.discovery.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class IoTDisownedProvider extends IQProvider { +public class IoTDisownedProvider extends IqProvider { @Override - public IoTDisowned parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IoTDisowned parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { NodeInfo nodeInfo = NodeInfoParser.parse(parser); return new IoTDisowned(nodeInfo); } 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 1127115f1..71ebcdddc 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -31,10 +32,10 @@ import org.jivesoftware.smackx.iot.discovery.element.Tag; import org.jivesoftware.smackx.iot.element.NodeInfo; import org.jivesoftware.smackx.iot.parser.NodeInfoParser; -public class IoTRegisterProvider extends IQProvider { +public class IoTRegisterProvider extends IqProvider { @Override - public IoTRegister parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public IoTRegister parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { boolean selfOwned = ParserUtils.getBooleanAttribute(parser, "selfOwned", false); NodeInfo nodeInfo = NodeInfoParser.parse(parser); List tags = new ArrayList<>(); 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 f0a201d32..3548dda3f 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 @@ -18,8 +18,9 @@ package org.jivesoftware.smackx.iot.discovery.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -30,10 +31,10 @@ import org.jivesoftware.smackx.iot.parser.NodeInfoParser; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; -public class IoTRemoveProvider extends IQProvider { +public class IoTRemoveProvider extends IqProvider { @Override - public IoTRemove parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws IOException { + public IoTRemove parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws IOException { Jid jid = ParserUtils.getJidAttribute(parser); if (jid.hasResource()) { // TODO: Should be SmackParseException. 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 8faa40e7c..0cd474cda 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 @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.iot.discovery.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class IoTRemovedProvider extends IQProvider { +public class IoTRemovedProvider extends IqProvider { @Override - public IoTRemoved parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IoTRemoved parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { NodeInfo nodeInfo = NodeInfoParser.parse(parser); return new IoTRemoved(nodeInfo); } 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 490d8034e..ac95f85dc 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 @@ -16,18 +16,19 @@ */ package org.jivesoftware.smackx.iot.discovery.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class IoTUnregisterProvider extends IQProvider { +public class IoTUnregisterProvider extends IqProvider { @Override - public IoTUnregister parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public IoTUnregister parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { NodeInfo nodeInfo = NodeInfoParser.parse(parser); return new IoTUnregister(nodeInfo); } 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 ae6013496..c33858ed0 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 @@ -16,16 +16,17 @@ */ package org.jivesoftware.smackx.iot.provisioning.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCache; -public class ClearCacheProvider extends IQProvider { +public class ClearCacheProvider extends IqProvider { @Override - public ClearCache parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public ClearCache parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { return new ClearCache(); } 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 ecd8ddd79..b9556c2bf 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 @@ -16,16 +16,17 @@ */ package org.jivesoftware.smackx.iot.provisioning.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.iot.provisioning.element.ClearCacheResponse; -public class ClearCacheResponseProvider extends IQProvider { +public class ClearCacheResponseProvider extends IqProvider { @Override - public ClearCacheResponse parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public ClearCacheResponse parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { return new ClearCacheResponse(); } 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 8d24f2811..c8b11c8d2 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 @@ -16,8 +16,9 @@ */ package org.jivesoftware.smackx.iot.provisioning.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -26,10 +27,10 @@ import org.jivesoftware.smackx.iot.provisioning.element.IoTIsFriend; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -public class IoTIsFriendProvider extends IQProvider { +public class IoTIsFriendProvider extends IqProvider { @Override - public IoTIsFriend parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmppStringprepException { + public IoTIsFriend parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmppStringprepException { Jid jid = ParserUtils.getJidAttribute(parser); return new IoTIsFriend(jid); } 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 79a23836d..434b6febb 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 @@ -16,8 +16,9 @@ */ package org.jivesoftware.smackx.iot.provisioning.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -27,10 +28,10 @@ import org.jxmpp.jid.BareJid; import org.jxmpp.jid.Jid; import org.jxmpp.stringprep.XmppStringprepException; -public class IoTIsFriendResponseProvider extends IQProvider { +public class IoTIsFriendResponseProvider extends IqProvider { @Override - public IoTIsFriendResponse parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmppStringprepException { + public IoTIsFriendResponse parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmppStringprepException { Jid jid = ParserUtils.getJidAttribute(parser); BareJid bareJid = jid.asBareJid(); boolean result = ParserUtils.getBooleanAttribute(parser, "result"); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jid_prep/provider/JidPrepIqProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jid_prep/provider/JidPrepIqProvider.java index d7ee7b072..843a2f2bd 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jid_prep/provider/JidPrepIqProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jid_prep/provider/JidPrepIqProvider.java @@ -18,18 +18,19 @@ package org.jivesoftware.smackx.jid_prep.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jid_prep.element.JidPrepIq; -public class JidPrepIqProvider extends IQProvider { +public class JidPrepIqProvider extends IqProvider { @Override - public JidPrepIq parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public JidPrepIq parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { String jid = parser.nextText(); 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 92be55c0b..bb8d1443e 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 @@ -18,9 +18,10 @@ package org.jivesoftware.smackx.mam.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -38,10 +39,10 @@ import org.jivesoftware.smackx.rsm.provider.RSMSetProvider; * @author Fernando Ramirez * */ -public class MamFinIQProvider extends IQProvider { +public class MamFinIQProvider extends IqProvider { @Override - public MamFinIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public MamFinIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { MamElementFactory elementFactory = MamElementFactory.forParser(parser); String queryId = parser.getAttributeValue("", "queryid"); boolean complete = ParserUtils.getBooleanAttribute(parser, "complete", false); 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 d4d0b7c46..af22236c6 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -40,12 +41,12 @@ import org.jxmpp.jid.impl.JidCreate; * @author Fernando Ramirez * */ -public class MamPrefsIQProvider extends IQProvider { +public class MamPrefsIQProvider extends IqProvider { public static final MamPrefsIQProvider INSTANCE = new MamPrefsIQProvider(); @Override - public MamPrefsIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MamPrefsIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { MamElementFactory elementFactory = MamElementFactory.forParser(parser); String defaultBehaviorString = parser.getAttributeValue("", "default"); DefaultBehavior defaultBehavior = null; 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 e6280a52d..984f66160 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 @@ -18,9 +18,10 @@ package org.jivesoftware.smackx.mam.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jivesoftware.smackx.xdata.provider.DataFormProvider; * @author Fernando Ramirez * */ -public class MamQueryIQProvider extends IQProvider { +public class MamQueryIQProvider extends IqProvider { @Override - public MamQueryIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public MamQueryIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { MamElementFactory elementFactory = MamElementFactory.forParser(parser); DataForm dataForm = null; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightAffiliationsIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightAffiliationsIQProvider.java index d35b85fe9..5a7f3f206 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightAffiliationsIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightAffiliationsIQProvider.java @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.muclight.provider; import java.io.IOException; import java.util.HashMap; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -36,10 +37,10 @@ import org.jxmpp.jid.impl.JidCreate; * @author Fernando Ramirez * */ -public class MUCLightAffiliationsIQProvider extends IQProvider { +public class MUCLightAffiliationsIQProvider extends IqProvider { @Override - public MUCLightAffiliationsIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MUCLightAffiliationsIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String version = null; HashMap occupants = new HashMap<>(); diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightBlockingIQProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightBlockingIQProvider.java index 265a0c68e..b89dba5c8 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightBlockingIQProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/provider/MUCLightBlockingIQProvider.java @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.HashMap; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jxmpp.stringprep.XmppStringprepException; * @author Fernando Ramirez * */ -public class MUCLightBlockingIQProvider extends IQProvider { +public class MUCLightBlockingIQProvider extends IqProvider { @Override - public MUCLightBlockingIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MUCLightBlockingIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { HashMap rooms = null; HashMap users = null; 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 b8eb5558a..ba05180a7 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.muclight.provider; import java.io.IOException; import java.util.HashMap; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -33,10 +34,10 @@ import org.jivesoftware.smackx.muclight.element.MUCLightConfigurationIQ; * @author Fernando Ramirez * */ -public class MUCLightConfigurationIQProvider extends IQProvider { +public class MUCLightConfigurationIQProvider extends IqProvider { @Override - public MUCLightConfigurationIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MUCLightConfigurationIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String version = null; String roomName = null; String subject = null; 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 5d62c5888..54d0a4218 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.muclight.provider; import java.io.IOException; import java.util.HashMap; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jxmpp.jid.impl.JidCreate; * @author Fernando Ramirez * */ -public class MUCLightInfoIQProvider extends IQProvider { +public class MUCLightInfoIQProvider extends IqProvider { @Override - public MUCLightInfoIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MUCLightInfoIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String version = null; String roomName = null; String subject = null; 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 589c2c9a1..acc947e93 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 @@ -63,7 +63,7 @@ public class AbstractHttpOverXmppProviderTest { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(string); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppResp); HttpOverXmppResp body = (HttpOverXmppResp) iq; @@ -83,7 +83,7 @@ public class AbstractHttpOverXmppProviderTest { HttpOverXmppReqProvider provider = new HttpOverXmppReqProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(string); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppReq); HttpOverXmppReq body = (HttpOverXmppReq) iq; @@ -205,7 +205,7 @@ public class AbstractHttpOverXmppProviderTest { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); XmlPullParser parser = SmackTestUtil.getParserFor(string, tag, parserKind); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppResp); return (HttpOverXmppResp) iq; } 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 e5d3e1e54..65c35d768 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 @@ -70,7 +70,7 @@ public class HttpOverXmppReqProviderTest { private static HttpOverXmppReq parseReq(String string) throws Exception { HttpOverXmppReqProvider provider = new HttpOverXmppReqProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(string); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppReq); return (HttpOverXmppReq) iq; } 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 d0a80ed14..3c6c3b948 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 @@ -39,7 +39,7 @@ public class HttpOverXmppRespProviderTest { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(string); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppResp); HttpOverXmppResp resp = (HttpOverXmppResp) iq; @@ -54,7 +54,7 @@ public class HttpOverXmppRespProviderTest { HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(string); - IQ iq = provider.parse(parser); + IQ iq = provider.parse(parser, null); assertTrue(iq instanceof HttpOverXmppResp); HttpOverXmppResp resp = (HttpOverXmppResp) iq; 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 8108aadaa..66830290c 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 @@ -40,7 +40,7 @@ public class MamFinProviderTest extends MamTest { @Test public void checkMamFinProvider() throws Exception { XmlPullParser parser = PacketParserUtils.getParserFor(exmapleMamFinXml); - MamFinIQ mamFinIQ = new MamFinIQProvider().parse(parser); + MamFinIQ mamFinIQ = new MamFinIQProvider().parse(parser, null); assertFalse(mamFinIQ.isComplete()); assertTrue(mamFinIQ.isStable()); 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 956d2057b..32328a42b 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 @@ -60,21 +60,21 @@ public class MamPrefIQProviderTest extends MamTest { public void checkMamPrefsIQProvider(XmlPullParserKind parserKind) throws XmlPullParserException, IOException, SmackParsingException { XmlPullParser parser1 = SmackTestUtil.getParserFor(exampleMamPrefsIQ1, parserKind); - MamPrefsIQ mamPrefIQ1 = MamPrefsIQProvider.INSTANCE.parse(parser1); + MamPrefsIQ mamPrefIQ1 = MamPrefsIQProvider.INSTANCE.parse(parser1, null); 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 = SmackTestUtil.getParserFor(exampleMamPrefsIQ2, parserKind); - MamPrefsIQ mamPrefIQ2 = MamPrefsIQProvider.INSTANCE.parse(parser2); + MamPrefsIQ mamPrefIQ2 = MamPrefsIQProvider.INSTANCE.parse(parser2, null); 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 = SmackTestUtil.getParserFor(exampleMamPrefsIQ3, parserKind); - MamPrefsIQ mamPrefIQ3 = MamPrefsIQProvider.INSTANCE.parse(parser3); + MamPrefsIQ mamPrefIQ3 = MamPrefsIQProvider.INSTANCE.parse(parser3, null); assertEquals(IQ.Type.set, mamPrefIQ3.getType()); } 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 9f8b68a3a..606130606 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jxmpp.jid.Jid; * @see XEP-0191: Blocking * Command */ -public class BlockContactsIQProvider extends IQProvider { +public class BlockContactsIQProvider extends IqProvider { @Override - public BlockContactsIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public BlockContactsIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List jids = new ArrayList<>(); outerloop: while (true) { 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 6b3b9b50b..20c561915 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 @@ -21,8 +21,9 @@ import java.util.ArrayList; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -38,10 +39,10 @@ import org.jxmpp.jid.Jid; * @see XEP-0191: Blocking * Command */ -public class BlockListIQProvider extends IQProvider { +public class BlockListIQProvider extends IqProvider { @Override - public BlockListIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public BlockListIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List jids = null; outerloop: while (true) { 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 afee9f93a..1b303cb4f 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jxmpp.jid.impl.JidCreate; * @see XEP-0191: Blocking * Command */ -public class UnblockContactsIQProvider extends IQProvider { +public class UnblockContactsIQProvider extends IqProvider { @Override - public UnblockContactsIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public UnblockContactsIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { List jids = null; outerloop: while (true) { 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 a1e9f92f3..edb82b2f6 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 @@ -18,8 +18,9 @@ package org.jivesoftware.smackx.bob.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.Pair; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -35,10 +36,10 @@ import org.jivesoftware.smackx.bob.element.BoBIQ; * @see XEP-0231: Bits of * Binary */ -public class BoBIQProvider extends IQProvider { +public class BoBIQProvider extends IqProvider { @Override - public BoBIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public BoBIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { Pair parserResult = BoBProviderUtil.parseContentIdAndBobData(parser, initialDepth, xmlEnvironment); 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 f6fbf0a69..063c433a5 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 @@ -16,8 +16,9 @@ */ package org.jivesoftware.smackx.bytestreams.ibb.provider; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; @@ -27,10 +28,10 @@ import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; * * @author Henning Staib */ -public class CloseIQProvider extends IQProvider { +public class CloseIQProvider extends IqProvider { @Override - public Close parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { + public Close parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) { String sid = parser.getAttributeValue("", "sid"); return new Close(sid); } 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 3213a1470..ec5b16a69 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 @@ -19,6 +19,7 @@ package org.jivesoftware.smackx.bytestreams.ibb.provider; import java.io.IOException; import org.jivesoftware.smack.datatypes.UInt16; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.parsing.SmackParsingException.RequiredAttributeMissingException; @@ -37,12 +38,12 @@ import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; */ public class DataPacketProvider { - public static class IQProvider extends org.jivesoftware.smack.provider.IQProvider { + public static class IQProvider extends org.jivesoftware.smack.provider.IqProvider { private static final PacketExtensionProvider packetExtensionProvider = new PacketExtensionProvider(); @Override - public Data parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public Data parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws IOException, XmlPullParserException, SmackParsingException { DataPacketExtension data = packetExtensionProvider.parse(parser); return new Data(data); 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 bcb10dbb8..2cf89de34 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.bytestreams.ibb.provider; import java.io.IOException; import java.util.Locale; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -32,10 +33,10 @@ import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; * * @author Henning Staib */ -public class OpenIQProvider extends IQProvider { +public class OpenIQProvider extends IqProvider { @Override - public Open parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public Open parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { String sessionID = parser.getAttributeValue("", "sid"); int blockSize = Integer.parseInt(parser.getAttributeValue("", "block-size")); 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 52fdf44bb..eb7769a29 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 @@ -18,8 +18,9 @@ package org.jivesoftware.smackx.bytestreams.socks5.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -34,10 +35,10 @@ import org.jxmpp.jid.Jid; * * @author Alexander Wenckus */ -public class BytestreamsProvider extends IQProvider { +public class BytestreamsProvider extends IqProvider { @Override - public Bytestream parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public Bytestream parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { boolean done = false; 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 13cb0b3cb..26dfa56a3 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 @@ -19,11 +19,12 @@ package org.jivesoftware.smackx.commands.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -39,10 +40,10 @@ import org.jivesoftware.smackx.xdata.provider.DataFormProvider; * * @author Gabriel Guardincerri */ -public class AdHocCommandDataProvider extends IQProvider { +public class AdHocCommandDataProvider extends IqProvider { @Override - public AdHocCommandData parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public AdHocCommandData parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { boolean done = false; AdHocCommandData adHocCommandData = new AdHocCommandData(); DataFormProvider dataFormProvider = new DataFormProvider(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java index 20714db77..6e43fbc9a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software, 2018-2020 Florian Schmaus. + * Copyright 2003-2007 Jive Software, 2018-2022 Florian Schmaus. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -937,6 +937,10 @@ public final class ServiceDiscoveryManager extends Manager { * Notify the {@link EntityCapabilitiesChangedListener} about changed capabilities. */ private synchronized void renewEntityCapsVersion() { + if (entityCapabilitiesChangedListeners.isEmpty()) { + return; + } + renewEntityCapsRequested++; if (renewEntityCapsScheduledAction != null) { boolean canceled = renewEntityCapsScheduledAction.cancel(); @@ -945,9 +949,12 @@ public final class ServiceDiscoveryManager extends Manager { } } - final XMPPConnection connection = connection(); - renewEntityCapsScheduledAction = scheduleBlocking(() -> { + final XMPPConnection connection = connection(); + if (connection == null) { + return; + } + renewEntityCapsPerformed.incrementAndGet(); DiscoverInfoBuilder discoverInfoBuilder = DiscoverInfo.builder("synthetized-disco-info-response") 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 ed687c19d..cdb74aa11 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.disco.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -34,10 +35,10 @@ import org.jxmpp.jid.Jid; * * @author Gaston Dombiak */ -public class DiscoverItemsProvider extends IQProvider { +public class DiscoverItemsProvider extends IqProvider { @Override - public DiscoverItems parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public DiscoverItems parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { DiscoverItems discoverItems = new DiscoverItems(); boolean done = false; 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 80c4bfc28..08d3ac686 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 @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.iqlast.packet; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -100,10 +101,10 @@ public class LastActivity extends IQ { * * @author Derek DeMoro */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public LastActivity parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public LastActivity parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { LastActivity lastActivity = new LastActivity(); String seconds = parser.getAttributeValue("", "seconds"); if (seconds != null) { 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 dfea387c2..d989c3c20 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,9 +31,10 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.StanzaError.Condition; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -234,10 +235,10 @@ public final class PrivateDataManager extends Manager { /** * An IQ provider to parse IQ results containing private data. */ - public static class PrivateDataIQProvider extends IQProvider { + public static class PrivateDataIQProvider extends IqProvider { @Override - public PrivateDataIQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public PrivateDataIQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { PrivateData privateData = null; boolean done = false; 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 b57a349f1..67da11bbe 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 @@ -23,20 +23,21 @@ import java.util.List; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class RegistrationProvider extends IQProvider { +public class RegistrationProvider extends IqProvider { @Override - public Registration parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public Registration parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { String instruction = null; Map fields = new HashMap<>(); List packetExtensions = new LinkedList<>(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java index 1064ee59d..afa2f2165 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software. 2020-2021 Florian Schmaus + * Copyright 2003-2007 Jive Software. 2020-2022 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -59,7 +60,9 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.MessageBuilder; import org.jivesoftware.smack.packet.MessageView; import org.jivesoftware.smack.packet.Presence; +import org.jivesoftware.smack.packet.PresenceBuilder; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.util.Consumer; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; @@ -124,7 +127,7 @@ public class MultiUserChat { private final Set participantStatusListeners = new CopyOnWriteArraySet(); private final Set messageListeners = new CopyOnWriteArraySet(); private final Set presenceListeners = new CopyOnWriteArraySet(); - private final Set presenceInterceptors = new CopyOnWriteArraySet(); + private final Set> presenceInterceptors = new CopyOnWriteArraySet<>(); /** * This filter will match all stanzas send from the groupchat or from one if @@ -138,7 +141,16 @@ public class MultiUserChat { */ private final StanzaFilter fromRoomGroupchatFilter; - private final StanzaListener presenceInterceptor; + private final AtomicInteger presenceInterceptorCount = new AtomicInteger(); + // We want to save the presence interceptor in a variable, using a lambda, (and not use a method reference) to be + // able to dynamically add and remove it from the connection. + @SuppressWarnings("UnnecessaryLambda") + private final Consumer presenceInterceptor = presenceBuilder -> { + for (Consumer interceptor : presenceInterceptors) { + interceptor.accept(presenceBuilder); + } + }; + private final StanzaListener messageListener; private final StanzaListener presenceListener; private final StanzaListener subjectListener; @@ -316,16 +328,6 @@ public class MultiUserChat { fireInvitationRejectionListeners(message, rejection); } }; - - presenceInterceptor = new StanzaListener() { - @Override - public void processStanza(Stanza packet) { - Presence presence = (Presence) packet; - for (PresenceListener interceptor : presenceInterceptors) { - interceptor.processPresence(presence); - } - } - }; } @@ -379,8 +381,6 @@ public class MultiUserChat { ); // @formatter:on connection.addStanzaListener(declinesListener, new AndFilter(fromRoomFilter, DECLINE_FILTER)); - connection.addStanzaSendingListener(presenceInterceptor, new AndFilter(ToMatchesFilter.create(room), - StanzaTypeFilter.PRESENCE)); messageCollector = connection.createStanzaCollector(fromRoomGroupchatFilter); // Wait for a presence packet back from the server. @@ -1133,8 +1133,13 @@ public class MultiUserChat { * * @param presenceInterceptor the new stanza interceptor that will intercept presence packets. */ - public void addPresenceInterceptor(PresenceListener presenceInterceptor) { - presenceInterceptors.add(presenceInterceptor); + public void addPresenceInterceptor(Consumer presenceInterceptor) { + boolean added = presenceInterceptors.add(presenceInterceptor); + if (!added) return; + int currentCount = presenceInterceptorCount.incrementAndGet(); + if (currentCount == 1) { + connection.addPresenceInterceptor(this.presenceInterceptor, ToMatchesFilter.create(room).asPredicate(Presence.class)); + } } /** @@ -1144,8 +1149,13 @@ public class MultiUserChat { * * @param presenceInterceptor the stanza interceptor to remove. */ - public void removePresenceInterceptor(PresenceListener presenceInterceptor) { - presenceInterceptors.remove(presenceInterceptor); + public void removePresenceInterceptor(Consumer presenceInterceptor) { + boolean removed = presenceInterceptors.remove(presenceInterceptor); + if (!removed) return; + int currentCount = presenceInterceptorCount.decrementAndGet(); + if (currentCount == 0) { + connection.removePresenceInterceptor(presenceInterceptor); + } } /** @@ -2211,7 +2221,7 @@ public class MultiUserChat { connection.removeStanzaListener(presenceListener); connection.removeStanzaListener(subjectListener); connection.removeStanzaListener(declinesListener); - connection.removeStanzaSendingListener(presenceInterceptor); + connection.removePresenceInterceptor(presenceInterceptor); if (messageCollector != null) { messageCollector.cancel(); messageCollector = null; 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 615a21589..72ee2db73 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.muc.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -31,10 +32,10 @@ import org.jivesoftware.smackx.muc.packet.MUCAdmin; * * @author Gaston Dombiak */ -public class MUCAdminProvider extends IQProvider { +public class MUCAdminProvider extends IqProvider { @Override - public MUCAdmin parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public MUCAdmin parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { MUCAdmin mucAdmin = new MUCAdmin(); boolean done = false; 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 4acdbd5f6..ef53769cc 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 @@ -19,9 +19,10 @@ package org.jivesoftware.smackx.muc.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -33,10 +34,10 @@ import org.jivesoftware.smackx.muc.packet.MUCOwner; * * @author Gaston Dombiak */ -public class MUCOwnerProvider extends IQProvider { +public class MUCOwnerProvider extends IqProvider { @Override - public MUCOwner parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public MUCOwner parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { MUCOwner mucOwner = new MUCOwner(); boolean done = false; while (!done) { 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 f867af712..8cc022438 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 @@ -23,8 +23,9 @@ import java.util.Collections; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -197,11 +198,11 @@ public class OfflineMessageRequest extends IQ { } } - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override public OfflineMessageRequest parse(XmlPullParser parser, - int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, + int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { OfflineMessageRequest request = new OfflineMessageRequest(); boolean done = false; 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 6e032bf2e..a12181b05 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 @@ -18,17 +18,18 @@ package org.jivesoftware.smackx.ping.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; -public class PingProvider extends IQProvider { +public class PingProvider extends IqProvider { @Override - public Ping parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public Ping parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { // No need to use the ping constructor with arguments. IQ will already // have filled out all relevant fields ('from', 'to', 'id'). return new Ping(); 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 a9609106a..f725108f3 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 @@ -20,8 +20,9 @@ import java.io.IOException; import java.util.ArrayList; import org.jivesoftware.smack.datatypes.UInt32; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -37,10 +38,10 @@ import org.jivesoftware.smackx.privacy.packet.PrivacyItem; * * @author Francisco Vives */ -public class PrivacyProvider extends IQProvider { +public class PrivacyProvider extends IqProvider { @Override - public Privacy parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public Privacy parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { Privacy privacy = new Privacy(); boolean done = false; 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 1faf9ea59..c876c6ed1 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 @@ -19,9 +19,10 @@ package org.jivesoftware.smackx.pubsub.provider; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -35,9 +36,9 @@ import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; * * @author Robin Collier */ -public class PubSubProvider extends IQProvider { +public class PubSubProvider extends IqProvider { @Override - public PubSub parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public PubSub parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { String namespace = parser.getNamespace(); PubSubNamespace pubSubNamespace = PubSubNamespace.valueOfFromXmlns(namespace); PubSub pubsub = new PubSub(pubSubNamespace); 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 7e1717738..bb0bb15e3 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 @@ -23,10 +23,11 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -124,11 +125,11 @@ public class UserSearch extends SimpleIQ { /** * Internal Search service Provider. */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { // FIXME this provider does return two different types of IQs @Override - public IQ parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public IQ parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { UserSearch search = null; SimpleUserSearch simpleUserSearch = new SimpleUserSearch(); 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 82517631c..12cab0048 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 @@ -21,8 +21,9 @@ import java.util.ArrayList; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -67,10 +68,10 @@ public class SharedGroupsInfo extends IQ { /** * Internal Search service Provider. */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public SharedGroupsInfo parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public SharedGroupsInfo parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { SharedGroupsInfo groupsInfo = new SharedGroupsInfo(); 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 6da4cafc9..a4be338b5 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 @@ -22,9 +22,10 @@ import java.util.Date; import java.util.logging.Level; import java.util.logging.Logger; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -41,11 +42,11 @@ import org.jxmpp.util.XmppDateTime; * @author Alexander Wenckus * */ -public class StreamInitiationProvider extends IQProvider { +public class StreamInitiationProvider extends IqProvider { private static final Logger LOGGER = Logger.getLogger(StreamInitiationProvider.class.getName()); @Override - public StreamInitiation parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public StreamInitiation parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { // si String id = parser.getAttributeValue("", "id"); String mimeType = parser.getAttributeValue("", "mime-type"); 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 6aa7140f8..e09d99273 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 @@ -18,8 +18,9 @@ package org.jivesoftware.smackx.vcardtemp.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -33,7 +34,7 @@ import org.jivesoftware.smackx.vcardtemp.packet.VCard; * @author Derek DeMoro * @author Chris Deering */ -public class VCardProvider extends IQProvider { +public class VCardProvider extends IqProvider { // @formatter:off private static final String[] ADR = new String[] { @@ -68,7 +69,7 @@ public class VCardProvider extends IQProvider { // @formatter:on @Override - public VCard parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public VCard parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { VCard vCard = new VCard(); String name = null; 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 0be42d61f..0b32e3adc 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 @@ -1,6 +1,6 @@ /** * - * Copyright 2003-2007 Jive Software 2020-2021 Florian Schmaus. + * Copyright 2003-2007 Jive Software 2020-2022 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,6 +21,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; import java.util.logging.Logger; import javax.xml.namespace.QName; @@ -30,6 +32,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.util.EqualsUtil; +import org.jivesoftware.smack.util.HashCode; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -111,7 +115,7 @@ public class DataFormProvider extends ExtensionElementProvider { // See XEP-133 Example 32 for a corner case where the data form contains this extension. case RosterPacket.ELEMENT: if (namespace.equals(RosterPacket.NAMESPACE)) { - dataForm.addExtensionElement(RosterPacketProvider.INSTANCE.parse(parser)); + dataForm.addExtensionElement(RosterPacketProvider.INSTANCE.parse(parser, null)); } break; // See XEP-141 Data Forms Layout @@ -140,6 +144,37 @@ public class DataFormProvider extends ExtensionElementProvider { return parseField(parser, xmlEnvironment, formType, null); } + private static final class FieldNameAndFormType { + private final String fieldName; + private final String formType; + + private FieldNameAndFormType(String fieldName, String formType) { + this.fieldName = fieldName; + this.formType = formType; + } + + private final HashCode.Cache hashCodeCache = new HashCode.Cache(); + + @Override + public int hashCode() { + return hashCodeCache.getHashCode(b -> + b.append(fieldName) + .append(formType) + .build() + ); + } + + @Override + public boolean equals(Object other) { + return EqualsUtil.equals(this, other, (e, o) -> + e.append(fieldName, o.fieldName) + .append(formType, o.formType) + ); + } + } + + private static final Set UNKNOWN_FIELDS = new CopyOnWriteArraySet<>(); + private static FormField parseField(XmlPullParser parser, XmlEnvironment xmlEnvironment, String formType, DataForm.ReportedData reportedData) throws XmlPullParserException, IOException, SmackParsingException { final int initialDepth = parser.getDepth(); @@ -212,8 +247,12 @@ public class DataFormProvider extends ExtensionElementProvider { // field's type in the registry. type = FormFieldRegistry.lookup(formType, fieldName); if (type == null) { - LOGGER.warning("The Field '" + fieldName + "' from FORM_TYPE '" + formType - + "' is not registered. Field type is unknown, assuming text-single."); + FieldNameAndFormType fieldNameAndFormType = new FieldNameAndFormType(fieldName, formType); + if (!UNKNOWN_FIELDS.contains(fieldNameAndFormType)) { + LOGGER.warning("The Field '" + fieldName + "' from FORM_TYPE '" + formType + + "' is not registered. Field type is unknown, assuming text-single."); + UNKNOWN_FIELDS.add(fieldNameAndFormType); + } // As per XEP-0004, text-single is the default form field type, which we use as emergency fallback here. type = FormField.Type.text_single; } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java index 967b765a8..4e3e4dde3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java @@ -53,7 +53,7 @@ public class OpenIQProviderTest extends SmackTestSuite { OpenIQProvider oip = new OpenIQProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(control); - Open open = oip.parse(parser); + Open open = oip.parse(parser, null); assertEquals(StanzaType.IQ, open.getStanza()); } @@ -69,7 +69,7 @@ public class OpenIQProviderTest extends SmackTestSuite { OpenIQProvider oip = new OpenIQProvider(); XmlPullParser parser = PacketParserUtils.getParserFor(control); - Open open = oip.parse(parser); + Open open = oip.parse(parser, null); assertEquals(StanzaType.MESSAGE, open.getStanza()); } 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 344ad2b66..db036e8f3 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 @@ -19,8 +19,9 @@ package org.jivesoftware.smack.roster.provider; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +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; @@ -29,12 +30,12 @@ import org.jivesoftware.smack.xml.XmlPullParserException; import org.jxmpp.jid.BareJid; import org.jxmpp.jid.impl.JidCreate; -public class RosterPacketProvider extends IQProvider { +public class RosterPacketProvider extends IqProvider { public static final RosterPacketProvider INSTANCE = new RosterPacketProvider(); @Override - public RosterPacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public RosterPacket parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { RosterPacket roster = new RosterPacket(); String version = parser.getAttributeValue("", "ver"); roster.setVersion(version); diff --git a/smack-jingle-old/src/integration-test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java b/smack-jingle-old/src/integration-test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java index ece434262..77cd6f0af 100644 --- a/smack-jingle-old/src/integration-test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java +++ b/smack-jingle-old/src/integration-test/java/org/jivesoftware/smackx/jingle/provider/JingleProviderTest.java @@ -19,7 +19,7 @@ import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.filter.StanzaTypeFilter; import org.jivesoftware.smack.packet.IQ; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.test.SmackTestCase; import org.jivesoftware.smackx.jingle.packet.Jingle; diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/RTPBridge.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/RTPBridge.java index 6bc5efcde..ab091450c 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/RTPBridge.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/RTPBridge.java @@ -30,8 +30,9 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -330,10 +331,10 @@ public class RTPBridge extends IQ { * * @author Thiago Rocha */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public RTPBridge parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public RTPBridge parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUN.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUN.java index 7aa4166f8..c0ae39b05 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUN.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/nat/STUN.java @@ -27,9 +27,10 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.provider.ProviderManager; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -118,10 +119,10 @@ public class STUN extends SimpleIQ { * * @author Thiago Rocha */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public STUN parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public STUN parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java index 9f4627e26..114405763 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java @@ -19,10 +19,11 @@ package org.jivesoftware.smackx.jingleold.provider; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.provider.ExtensionElementProvider; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -41,7 +42,7 @@ import org.jxmpp.jid.Jid; * * @author Alvaro Saurin */ -public class JingleProvider extends IQProvider { +public class JingleProvider extends IqProvider { /** * Parse a iq/jingle element. @@ -50,7 +51,7 @@ public class JingleProvider extends IQProvider { * @throws SmackParsingException if the Smack parser (provider) encountered invalid input. */ @Override - public Jingle parse(XmlPullParser parser, int intialDepth, XmlEnvironment xmlEnvironment) throws IOException, XmlPullParserException, SmackParsingException { + public Jingle parse(XmlPullParser parser, int intialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws IOException, XmlPullParserException, SmackParsingException { Jingle jingle = new Jingle(); String sid; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java index 04bab6612..dadd47825 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java @@ -22,9 +22,10 @@ import java.io.IOException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -61,10 +62,10 @@ public class OfferConfirmation extends SimpleIQ { con.sendStanza(packet); } - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public OfferConfirmation parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public OfferConfirmation parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { final OfferConfirmation confirmation = new OfferConfirmation(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/forms/WorkgroupForm.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/forms/WorkgroupForm.java index e27c472bd..36871bc12 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/forms/WorkgroupForm.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/forms/WorkgroupForm.java @@ -19,10 +19,11 @@ package org.jivesoftware.smackx.workgroup.ext.forms; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -48,10 +49,10 @@ public class WorkgroupForm extends SimpleIQ { * * @author Derek DeMoro */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public WorkgroupForm parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public WorkgroupForm parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { WorkgroupForm answer = new WorkgroupForm(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/AgentChatHistory.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/AgentChatHistory.java index c624f894b..87b03daf4 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/AgentChatHistory.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/AgentChatHistory.java @@ -24,8 +24,9 @@ import java.util.Date; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -91,10 +92,10 @@ public class AgentChatHistory extends IQ { /** * Stanza extension provider for AgentHistory packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public AgentChatHistory parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public AgentChatHistory parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { if (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { throw new IllegalStateException("Parser not in proper position, or bad XML."); } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/ChatMetadata.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/ChatMetadata.java index 4f880ef57..80e311989 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/ChatMetadata.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/history/ChatMetadata.java @@ -23,8 +23,9 @@ import java.util.List; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -81,10 +82,10 @@ public class ChatMetadata extends IQ { * * @author Derek DeMoro */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public ChatMetadata parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public ChatMetadata parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { final ChatMetadata chatM = new ChatMetadata(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/macros/Macros.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/macros/Macros.java index 203ead960..5b72eadad 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/macros/Macros.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/macros/Macros.java @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.workgroup.ext.macros; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -96,10 +97,10 @@ public class Macros extends IQ { * * @author Derek DeMoro */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public Macros parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public Macros parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { Macros macroGroup = new Macros(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/notes/ChatNotes.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/notes/ChatNotes.java index 89d32692a..e1bcaeef2 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/notes/ChatNotes.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/ext/notes/ChatNotes.java @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.workgroup.ext.notes; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -81,10 +82,10 @@ public class ChatNotes extends IQ { * * @author Derek DeMoro */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public ChatNotes parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public ChatNotes parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { ChatNotes chatNotes = new ChatNotes(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentInfo.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentInfo.java index 5178c4d84..78b76f8ea 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentInfo.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentInfo.java @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.workgroup.packet; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -104,10 +105,10 @@ public class AgentInfo extends IQ { * * @author Gaston Dombiak */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public AgentInfo parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public AgentInfo parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { AgentInfo answer = new AgentInfo(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatusRequest.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatusRequest.java index 8161896ad..4d2ce2ce5 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatusRequest.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatusRequest.java @@ -24,8 +24,9 @@ import java.util.Iterator; import java.util.Set; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -111,10 +112,10 @@ public class AgentStatusRequest extends IQ { /** * Stanza extension provider for AgentStatusRequest packets. */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public AgentStatusRequest parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public AgentStatusRequest parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { AgentStatusRequest statusRequest = new AgentStatusRequest(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentWorkgroups.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentWorkgroups.java index 74944b998..54eabffd2 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentWorkgroups.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentWorkgroups.java @@ -24,8 +24,9 @@ import java.util.Iterator; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -103,10 +104,10 @@ public class AgentWorkgroups extends IQ { * * @author Gaston Dombiak */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public AgentWorkgroups parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public AgentWorkgroups parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { final Jid agentJID = ParserUtils.getJidAttribute(parser); List workgroups = new ArrayList<>(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MonitorPacket.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MonitorPacket.java index 4e0f253a9..82fffbd1a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MonitorPacket.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/MonitorPacket.java @@ -19,8 +19,9 @@ package org.jivesoftware.smackx.workgroup.packet; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -75,10 +76,10 @@ public class MonitorPacket extends IQ { /** * Stanza extension provider for Monitor Packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public MonitorPacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public MonitorPacket parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { MonitorPacket packet = new MonitorPacket(); boolean done = false; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OccupantsInfo.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OccupantsInfo.java index ec3eafb1e..4165f4379 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OccupantsInfo.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OccupantsInfo.java @@ -27,8 +27,9 @@ import java.util.Set; import java.util.TimeZone; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -132,10 +133,10 @@ public class OccupantsInfo extends IQ { /** * Stanza extension provider for AgentStatusRequest packets. */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public OccupantsInfo parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public OccupantsInfo parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, ParseException { OccupantsInfo occupantsInfo = new OccupantsInfo(parser.getAttributeValue("", "roomID")); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRequestProvider.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRequestProvider.java index c975db452..ae6f79626 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRequestProvider.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRequestProvider.java @@ -23,9 +23,10 @@ import java.util.List; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; @@ -45,14 +46,14 @@ import org.jxmpp.jid.Jid; * * @author loki der quaeler */ -public class OfferRequestProvider extends IQProvider { +public class OfferRequestProvider extends IqProvider { // FIXME It seems because OfferRequestPacket is also defined here, we can // not add it as generic to the provider, the provider and the packet should // be split, but since this is legacy code, I don't think that this will // happen anytime soon. @Override - public OfferRequestPacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public OfferRequestPacket parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { XmlPullParser.Event eventType = parser.getEventType(); String sessionID = null; int timeout = -1; 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 8cc0ad482..282620d0e 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 @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.workgroup.packet; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -33,10 +34,10 @@ import org.jxmpp.jid.Jid; * * @author loki der quaeler */ -public class OfferRevokeProvider extends IQProvider { +public class OfferRevokeProvider extends IqProvider { @Override - public OfferRevokePacket parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public OfferRevokePacket parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { // The parser will be positioned on the opening IQ tag, so get the JID attribute. Jid userJID = ParserUtils.getJidAttribute(parser); // Default the userID to the JID. 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 d16872862..3d4f7b730 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 @@ -21,10 +21,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -34,10 +35,10 @@ import org.jivesoftware.smack.xml.XmlPullParserException; * * @author Gaston Dombiak */ -public class TranscriptProvider extends IQProvider { +public class TranscriptProvider extends IqProvider { @Override - public Transcript parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public Transcript parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { String sessionID = parser.getAttributeValue("", "sessionID"); List packets = new ArrayList<>(); 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 4d750ec7a..49c53a86c 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 @@ -19,10 +19,11 @@ package org.jivesoftware.smackx.workgroup.packet; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.parsing.SmackParsingException; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -54,10 +55,10 @@ public class TranscriptSearch extends SimpleIQ { * * @author Gaston Dombiak */ - public static class Provider extends IQProvider { + public static class Provider extends IqProvider { @Override - public TranscriptSearch parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { + public TranscriptSearch parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException { TranscriptSearch answer = new TranscriptSearch(); boolean done = false; 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 e9005ab8f..d86e413a5 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 @@ -25,8 +25,9 @@ import java.util.Date; import java.util.List; import java.util.TimeZone; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.ParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -38,7 +39,7 @@ import org.jxmpp.jid.Jid; * * @author Gaston Dombiak */ -public class TranscriptsProvider extends IQProvider { +public class TranscriptsProvider extends IqProvider { @SuppressWarnings("DateFormatConstant") private static final SimpleDateFormat UTC_FORMAT = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss"); @@ -47,7 +48,7 @@ public class TranscriptsProvider extends IQProvider { } @Override - public Transcripts parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) + public Transcripts parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, TextParseException, ParseException { Jid userID = ParserUtils.getJidAttribute(parser, "userID"); List summaries = new ArrayList<>(); 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 534ddbbed..ddec1a662 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 @@ -24,8 +24,9 @@ import java.util.Iterator; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -123,10 +124,10 @@ public class ChatSettings extends IQ { /** * Stanza extension provider for AgentStatusRequest packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public ChatSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public ChatSettings parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { if (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) { throw new IllegalStateException("Parser not in proper position, or bad XML."); } 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 d9f9e405c..13db2c9a2 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 @@ -22,8 +22,9 @@ import java.util.HashMap; import java.util.Map; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -77,10 +78,10 @@ public class GenericSettings extends IQ { /** * Stanza extension provider for SoundSetting Packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public GenericSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public GenericSettings parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { GenericSettings setting = new GenericSettings(); boolean done = false; 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 732a7126a..0b0dab568 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 @@ -19,9 +19,10 @@ package org.jivesoftware.smackx.workgroup.settings; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -104,10 +105,10 @@ public class OfflineSettings extends SimpleIQ { /** * Stanza extension provider for AgentStatusRequest packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public OfflineSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public OfflineSettings parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { OfflineSettings offlineSettings = new OfflineSettings(); boolean done = false; 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 5c688c959..9d182bbf1 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 @@ -18,9 +18,10 @@ package org.jivesoftware.smackx.workgroup.settings; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -75,10 +76,10 @@ public class SearchSettings extends SimpleIQ { /** * Stanza extension provider for AgentStatusRequest packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public SearchSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public SearchSettings parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { SearchSettings settings = new SearchSettings(); boolean done = false; 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 a7bcf0f49..7c717525e 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 @@ -19,9 +19,10 @@ package org.jivesoftware.smackx.workgroup.settings; import java.io.IOException; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.SimpleIQ; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.stringencoder.Base64; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -65,10 +66,10 @@ public class SoundSettings extends SimpleIQ { /** * Stanza extension provider for SoundSetting Packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public SoundSettings parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public SoundSettings parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { SoundSettings soundSettings = new SoundSettings(); boolean done = false; 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 74c42bda1..b96d1ddef 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 @@ -20,8 +20,9 @@ package org.jivesoftware.smackx.workgroup.settings; import java.io.IOException; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.packet.IqData; import org.jivesoftware.smack.packet.XmlEnvironment; -import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.provider.IqProvider; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; @@ -92,10 +93,10 @@ public class WorkgroupProperties extends IQ { /** * Stanza extension provider for SoundSetting Packets. */ - public static class InternalProvider extends IQProvider { + public static class InternalProvider extends IqProvider { @Override - public WorkgroupProperties parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { + public WorkgroupProperties parse(XmlPullParser parser, int initialDepth, IqData iqData, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException { WorkgroupProperties props = new WorkgroupProperties(); boolean done = false; diff --git a/smack-openpgp/build.gradle b/smack-openpgp/build.gradle index 81c6accbd..fb27fd70e 100644 --- a/smack-openpgp/build.gradle +++ b/smack-openpgp/build.gradle @@ -8,7 +8,7 @@ dependencies { api project(':smack-extensions') api project(':smack-experimental') - api 'org.pgpainless:pgpainless-core:1.0.0-rc6' + api 'org.pgpainless:pgpainless-core:1.1.1' testImplementation "org.bouncycastle:bcprov-jdk15on:${bouncyCastleVersion}" 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 1403a78df..561978bb4 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 @@ -396,7 +396,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection { if (isSmResumptionPossible()) { smResumedSyncPoint = SyncPointState.request_sent; sendNonza(new Resume(clientHandledStanzasCount, smSessionId)); - waitForConditionOrConnectionException(() -> smResumedSyncPoint == SyncPointState.successful || smResumptionFailed != null, "resume previous stream"); + waitForConditionOrThrowConnectionException(() -> smResumedSyncPoint == SyncPointState.successful || smResumptionFailed != null, "resume previous stream"); if (smResumedSyncPoint == SyncPointState.successful) { // We successfully resumed the stream, be done here afterSuccessfulLogin(true);