summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Hudson <nick.hudson@isode.com>2013-09-18 13:37:55 (GMT)
committerKevin Smith <git@kismith.co.uk>2013-09-18 13:40:59 (GMT)
commit8a2351e0ddb9bcb9974b1015c1858bd7545bfe28 (patch)
tree0fd410122281b656ad94f042419277438eb1a389 /src/com/isode/stroke/client
parentd10646423d70934b598b5d8ff2d8910034941029 (diff)
downloadstroke-8a2351e0ddb9bcb9974b1015c1858bd7545bfe28.zip
stroke-8a2351e0ddb9bcb9974b1015c1858bd7545bfe28.tar.bz2
Update NetworkFactories to own TLSContextFactory as per Swiften
This change moves responsibility for creating the TLSContextFactory from CoreClient into NetworkFactories, which is in line with the Swiften implementation. This means that a caller may now provide his own concrete TLSContextFactory using code of the form: NetworkFactories myNetworkFactories; . . myNetworkFactories = new JavaNetworkFactories(eventLoop()) { @Override public TLSContextFactory getTLSContextFactory() { return new MyTLSContextFactory(); } }; Test-information: I implemented separate TLSContextFactory and TLSContext classes that used OpenSSL via JNI) to provide SSL functionality. I was able to switch to using these with the mechanism that this patch provides. I also verified that existing code which doesn't try to provide its own NetworkFactories subclass still works as before (i.e. this patch doesn't break existing applications). Change-Id: Ibf07ddbbb4a4d39e4bb30a28be9aa0c43afe005f Signed-off-by: Nick Hudson <nick.hudson@isode.com>
Diffstat (limited to 'src/com/isode/stroke/client')
-rw-r--r--src/com/isode/stroke/client/CoreClient.java8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/com/isode/stroke/client/CoreClient.java b/src/com/isode/stroke/client/CoreClient.java
index c332f27..236ed89 100644
--- a/src/com/isode/stroke/client/CoreClient.java
+++ b/src/com/isode/stroke/client/CoreClient.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010-2012, Isode Limited, London, England.
+ * Copyright (c) 2010-2013, Isode Limited, London, England.
* All rights reserved.
*/
/*
@@ -15,7 +15,6 @@ import com.isode.stroke.elements.Stanza;
import com.isode.stroke.elements.StreamType;
import com.isode.stroke.jid.JID;
import com.isode.stroke.network.Connection;
-import com.isode.stroke.network.ConnectionFactory;
import com.isode.stroke.network.Connector;
import com.isode.stroke.network.DomainNameResolveError;
import com.isode.stroke.network.NetworkFactories;
@@ -34,7 +33,6 @@ import com.isode.stroke.tls.Certificate;
import com.isode.stroke.tls.CertificateTrustChecker;
import com.isode.stroke.tls.CertificateVerificationError;
import com.isode.stroke.tls.CertificateWithKey;
-import com.isode.stroke.tls.PlatformTLSFactories;
/**
* The central class for communicating with an XMPP server.
@@ -101,7 +99,6 @@ public class CoreClient {
private ClientOptions options;
private CertificateTrustChecker certificateTrustChecker;
private NetworkFactories networkFactories;
- private PlatformTLSFactories tlsFactories;
private SignalConnection sessionStreamDataReadConnection_;
private SignalConnection sessionStreamDataWrittenConnection_;
private SignalConnection sessionFinishedConnection_;
@@ -157,7 +154,6 @@ public class CoreClient {
});
iqRouter_ = new IQRouter(stanzaChannel_);
- tlsFactories = new PlatformTLSFactories();
}
/*CoreClient::~CoreClient() {
@@ -252,7 +248,7 @@ public class CoreClient {
connection_ = connection;
assert (sessionStream_ == null);
- sessionStream_ = new BasicSessionStream(StreamType.ClientStreamType, connection_, payloadParserFactories_, payloadSerializers_, tlsFactories.getTLSContextFactory(), networkFactories.getTimerFactory());
+ sessionStream_ = new BasicSessionStream(StreamType.ClientStreamType, connection_, payloadParserFactories_, payloadSerializers_, networkFactories.getTLSContextFactory(), networkFactories.getTimerFactory());
if (certificate_ != null && !certificate_.isNull()) {
sessionStream_.setTLSCertificate(certificate_);
}