mirror of
https://github.com/danieldemus/openhab-addons
synced 2026-07-29 12:34:21 +02:00
[xmppclient] Fix bundle load (#20220)
Signed-off-by: Leo Siepel <leosiepel@gmail.com>
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<name>openHAB Add-ons :: Bundles :: XMPPClient Binding</name>
|
||||
|
||||
<properties>
|
||||
<smack.version>4.5.0-beta6</smack.version>
|
||||
<smack.version>4.5.0-rc1</smack.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
||||
@@ -4,24 +4,26 @@
|
||||
|
||||
<feature name="openhab-binding-xmppclient" description="XMPP Client Binding" version="${project.version}">
|
||||
<feature>openhab-runtime-base</feature>
|
||||
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-extensions/4.5.0-beta6</bundle>
|
||||
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-experimental/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-tcp/4.5.0-beta6</bundle>
|
||||
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-xmlparser/4.5.0-beta6</bundle>
|
||||
<bundle dependency="true">mvn:org.igniterealtime.smack/smack-streammanagement/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.bouncycastle/bcprov-jdk18on/1.83</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-sasl-javax/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-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-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.xmppclient/${project.version}</bundle>
|
||||
</feature>
|
||||
</features>
|
||||
|
||||
+28
@@ -16,6 +16,19 @@ 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.smackx.disco.provider.DiscoverInfoProvider;
|
||||
import org.jivesoftware.smackx.disco.provider.DiscoverItemsProvider;
|
||||
import org.jivesoftware.smackx.xdata.provider.DataFormProvider;
|
||||
import org.openhab.binding.xmppclient.internal.handler.XMPPClientHandler;
|
||||
import org.openhab.core.thing.Bridge;
|
||||
import org.openhab.core.thing.Thing;
|
||||
@@ -23,6 +36,8 @@ import org.openhab.core.thing.ThingTypeUID;
|
||||
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
|
||||
import org.openhab.core.thing.binding.ThingHandler;
|
||||
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
||||
import org.osgi.service.component.ComponentContext;
|
||||
import org.osgi.service.component.annotations.Activate;
|
||||
import org.osgi.service.component.annotations.Component;
|
||||
|
||||
/**
|
||||
@@ -51,4 +66,17 @@ public class XMPPClientHandlerFactory extends BaseThingHandlerFactory {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Activate
|
||||
protected void activate(ComponentContext componentContext) {
|
||||
super.activate(componentContext);
|
||||
Roster.setRosterLoadedAtLoginDefault(false);
|
||||
DNSUtil.setDNSResolver(JavaxResolver.getInstance());
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
+7
-4
@@ -93,6 +93,7 @@ public class XMPPClient implements IncomingChatMessageListener, ConnectionListen
|
||||
}
|
||||
|
||||
XMPPTCPConnectionConfiguration config;
|
||||
|
||||
try {
|
||||
config = XMPPTCPConnectionConfiguration.builder() //
|
||||
.setHost(serverHost) //
|
||||
@@ -118,7 +119,7 @@ public class XMPPClient implements IncomingChatMessageListener, ConnectionListen
|
||||
|
||||
try {
|
||||
connectionLocal.connect().login();
|
||||
} catch (InterruptedException | XMPPException | SmackException | IOException e) {
|
||||
} catch (InterruptedException | XMPPException | SmackException | IOException | IllegalStateException e) {
|
||||
throw new XMPPClientException(Objects.requireNonNullElse(e.getMessage(), "Unknown error message"),
|
||||
e.getCause());
|
||||
}
|
||||
@@ -130,7 +131,6 @@ public class XMPPClient implements IncomingChatMessageListener, ConnectionListen
|
||||
MultiUserChatManager multiUserChatManager = MultiUserChatManager.getInstanceFor(connection);
|
||||
multiUserChatManager.setAutoJoinOnReconnect(true);
|
||||
this.multiUserChatManager = multiUserChatManager;
|
||||
httpFileUploadManager = HttpFileUploadManager.getInstanceFor(connection);
|
||||
}
|
||||
|
||||
public void disconnect() {
|
||||
@@ -194,8 +194,11 @@ public class XMPPClient implements IncomingChatMessageListener, ConnectionListen
|
||||
}
|
||||
HttpFileUploadManager httpFileUploadManagerLocal = httpFileUploadManager;
|
||||
if (httpFileUploadManagerLocal == null) {
|
||||
logger.warn("XMPP httpFileUploadManager is null");
|
||||
return;
|
||||
httpFileUploadManagerLocal = httpFileUploadManager = HttpFileUploadManager.getInstanceFor(connection);
|
||||
if (httpFileUploadManagerLocal == null) {
|
||||
logger.warn("XMPP httpFileUploadManager is null");
|
||||
return;
|
||||
}
|
||||
}
|
||||
try {
|
||||
URL u = httpFileUploadManagerLocal.uploadFile(new File(filename));
|
||||
|
||||
Reference in New Issue
Block a user