37 lines
1.5 KiB
Java
37 lines
1.5 KiB
Java
package org.mercury_im.messenger.transport.xmpp;
|
|
|
|
import org.jivesoftware.smack.XMPPConnection;
|
|
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
|
|
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;
|
|
import org.jxmpp.jid.EntityBareJid;
|
|
import org.jxmpp.jid.impl.JidCreate;
|
|
import org.mercury_im.messenger.Messenger;
|
|
import org.mercury_im.messenger.entity.Account;
|
|
import org.mercury_im.messenger.entity.PasswordAuthentication;
|
|
|
|
public class XmppTcpConnectionFactory extends XmppConnectionFactory<XMPPTCPConnectionConfiguration> {
|
|
|
|
public XmppTcpConnectionFactory(Messenger messenger) {
|
|
super(messenger);
|
|
}
|
|
|
|
@Override
|
|
protected XMPPTCPConnectionConfiguration getConfiguration(Account account) {
|
|
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
|
|
configBuilder.setConnectTimeout(20 * 1000);
|
|
|
|
if (account.getAuthentication() instanceof PasswordAuthentication) {
|
|
PasswordAuthentication authPassword = (PasswordAuthentication) account.getAuthentication();
|
|
EntityBareJid accountAddress = JidCreate.entityBareFromOrThrowUnchecked(account.getAddress());
|
|
configBuilder.setXmppAddressAndPassword(accountAddress, authPassword.getPassword());
|
|
}
|
|
|
|
return configBuilder.build();
|
|
}
|
|
|
|
@Override
|
|
protected XMPPConnection createXmppConnection(XMPPTCPConnectionConfiguration configuration) {
|
|
return new XMPPTCPConnection(configuration);
|
|
}
|
|
}
|