[ecovacs] Update smack dependency (#20221)

* Update to rc1

Signed-off-by: Leo Siepel <leosiepel@gmail.com>
Co-authored-by: Kai Kreuzer <kai@openhab.org>
This commit is contained in:
lsiepel
2026-06-17 09:50:14 +02:00
committed by GitHub
co-authored by Kai Kreuzer
parent 1cebe6781c
commit ad27ea32ba
4 changed files with 72 additions and 14 deletions
+13 -1
View File
@@ -14,7 +14,7 @@
<name>openHAB Add-ons :: Bundles :: Ecovacs Binding</name>
<properties>
<smack.version>4.5.0-beta6</smack.version>
<smack.version>4.5.0-rc1</smack.version>
</properties>
<dependencyManagement>
@@ -68,6 +68,18 @@
<version>${smack.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-xmlparser</artifactId>
<version>${smack.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-xmlparser-xpp3</artifactId>
<version>${smack.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.igniterealtime.smack</groupId>
<artifactId>smack-resolver-javax</artifactId>
@@ -5,20 +5,26 @@
<feature name="openhab-binding-ecovacs" description="Ecovacs Binding" version="${project.version}">
<feature>openhab-runtime-base</feature>
<feature dependency="true">openhab.tp-hivemqclient</feature>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-tcp/4.5.0-beta6</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-extensions/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-experimental/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-im/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-tcp/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-xmlparser/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-streammanagement/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-xmlparser-xpp3/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-resolver-javax/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/1.1.4c_7</bundle>
<bundle dependency="true">mvn:org.jxmpp/jxmpp-core/1.1.0</bundle>
<bundle dependency="true">mvn:org.jxmpp/jxmpp-jid/1.1.0</bundle>
<bundle dependency="true">mvn:org.jxmpp/jxmpp-util-cache/1.1.0</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.hsluv.hsluv/0.2</bundle>
<bundle dependency="true">mvn:org.minidns/minidns-core/1.1.1</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.igniterealtime.smack.smack-core/4.5.0-beta6</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-im/4.5.0-beta6</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-extensions/4.5.0-beta6</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-resolver-javax/4.5.0-beta6</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-java11/4.5.0-beta6</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-sasl-javax/4.5.0-beta6</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-streammanagement/4.5.0-beta6</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-xmlparser/4.5.0-beta6</bundle>
<bundle dependency="true">mvn:org.openhab.osgiify/org.igniterealtime.smack.smack-core/4.5.0-rc1</bundle>
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-sasl-javax/4.5.0-rc1</bundle>
<!-- FIXME: implicit dependencies required at runtime but not automatically installed, this is a workaround -->
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-resolver-javax/4.5.0-rc1</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-java11/4.5.0-rc1</bundle>
<bundle start-level="80">mvn:org.igniterealtime.smack/smack-sasl-javax/4.5.0-rc1</bundle>
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.ecovacs/${project.version}</bundle>
</feature>
</features>
@@ -18,6 +18,21 @@ import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.jivesoftware.smack.SmackConfiguration;
import org.jivesoftware.smack.java7.XmppHostnameVerifier;
import org.jivesoftware.smack.provider.ProviderManager;
import org.jivesoftware.smack.roster.Roster;
import org.jivesoftware.smack.util.DNSUtil;
import org.jivesoftware.smack.util.dns.javax.JavaxResolver;
import org.jivesoftware.smack.util.stringencoder.Base64;
import org.jivesoftware.smack.util.stringencoder.Base64UrlSafeEncoder;
import org.jivesoftware.smack.util.stringencoder.java7.Java7Base64Encoder;
import org.jivesoftware.smack.util.stringencoder.java7.Java7Base64UrlSafeEncoder;
import org.jivesoftware.smack.xml.SmackXmlParser;
import org.jivesoftware.smack.xml.xpp3.Xpp3XmlPullParserFactory;
import org.jivesoftware.smackx.disco.provider.DiscoverInfoProvider;
import org.jivesoftware.smackx.disco.provider.DiscoverItemsProvider;
import org.jivesoftware.smackx.xdata.provider.DataFormProvider;
import org.openhab.binding.ecovacs.internal.handler.EcovacsApiHandler;
import org.openhab.binding.ecovacs.internal.handler.EcovacsVacuumHandler;
import org.openhab.core.i18n.LocaleProvider;
@@ -57,6 +72,19 @@ public class EcovacsHandlerFactory extends BaseThingHandlerFactory {
this.stateDescriptionProvider = stateDescriptionProvider;
this.localeProvider = localeProvider;
this.i18Provider = i18Provider;
SmackXmlParser.setXmlPullParserFactory(new Xpp3XmlPullParserFactory());
Roster.setRosterLoadedAtLoginDefault(false);
var dnsResolver = JavaxResolver.getInstance();
if (dnsResolver != null) {
DNSUtil.setDNSResolver(dnsResolver);
}
SmackConfiguration.setDefaultHostnameVerifier(new XmppHostnameVerifier());
Base64.setEncoder(Java7Base64Encoder.getInstance());
Base64UrlSafeEncoder.setEncoder(Java7Base64UrlSafeEncoder.getInstance());
ProviderManager.addIQProvider("query", "http://jabber.org/protocol/disco#info", new DiscoverInfoProvider());
ProviderManager.addIQProvider("query", "http://jabber.org/protocol/disco#items", new DiscoverItemsProvider());
ProviderManager.addExtensionProvider("x", "jabber:x:data", new DataFormProvider());
}
@Override
@@ -45,9 +45,9 @@ import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
import org.jivesoftware.smack.util.PacketParserUtils;
import org.jivesoftware.smack.xml.XmlPullParser;
import org.jivesoftware.smack.xml.XmlPullParser.Event;
import org.jivesoftware.smack.xml.XmlPullParserException;
import org.jivesoftware.smackx.ping.PingManager;
import org.jxmpp.JxmppContext;
import org.jxmpp.jid.Jid;
import org.jxmpp.jid.impl.JidCreate;
import org.openhab.binding.ecovacs.internal.api.EcovacsApiConfiguration;
@@ -442,8 +442,9 @@ public class EcovacsXmppDevice implements EcovacsDevice {
private static class CommandIQProvider extends IqProvider<@Nullable DeviceCommandIQ> {
@Override
public @Nullable DeviceCommandIQ parse(@Nullable XmlPullParser parser, int initialDepth, @Nullable IqData data,
@Nullable XmlEnvironment xmlEnvironment)
@Nullable XmlEnvironment xmlEnvironment, @Nullable JxmppContext jxmppContext)
throws XmlPullParserException, IOException, SmackParsingException, ParseException {
@Nullable
DeviceCommandIQ packet = null;
@@ -454,18 +455,29 @@ public class EcovacsXmppDevice implements EcovacsDevice {
outerloop: while (true) {
switch (parser.next()) {
case Event.START_ELEMENT:
case START_ELEMENT:
if (parser.getDepth() == initialDepth + 1) {
String id = parser.getAttributeValue("", "id");
String payload = PacketParserUtils.parseElement(parser).toString();
packet = new DeviceCommandIQ(id, payload);
}
break;
case Event.END_ELEMENT:
case END_ELEMENT:
if (parser.getDepth() == initialDepth) {
break outerloop;
}
break;
case COMMENT:
case END_DOCUMENT:
case ENTITY_REFERENCE:
case IGNORABLE_WHITESPACE:
case OTHER:
case PROCESSING_INSTRUCTION:
case START_DOCUMENT:
case TEXT_CHARACTERS:
break;
default:
break;
}
}