mirror of
https://github.com/danieldemus/openhab-addons
synced 2026-07-29 12:34:21 +02:00
[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:
@@ -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>
|
||||
|
||||
+28
@@ -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
|
||||
|
||||
+16
-4
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user