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/network/JavaNetworkFactories.java
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/network/JavaNetworkFactories.java')
-rw-r--r--src/com/isode/stroke/network/JavaNetworkFactories.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/com/isode/stroke/network/JavaNetworkFactories.java b/src/com/isode/stroke/network/JavaNetworkFactories.java
index acd289b..aaffea3 100644
--- a/src/com/isode/stroke/network/JavaNetworkFactories.java
+++ b/src/com/isode/stroke/network/JavaNetworkFactories.java
@@ -1,10 +1,12 @@
/*
- * Copyright (c) 2011 Isode Limited, London, England.
+ * Copyright (c) 2011-2013 Isode Limited, London, England.
* All rights reserved.
*/
package com.isode.stroke.network;
import com.isode.stroke.eventloop.EventLoop;
+import com.isode.stroke.tls.PlatformTLSFactories;
+import com.isode.stroke.tls.TLSContextFactory;
public class JavaNetworkFactories implements NetworkFactories {
@@ -13,6 +15,7 @@ public class JavaNetworkFactories implements NetworkFactories {
timers_ = new JavaTimerFactory(eventLoop_);
connections_ = new JavaConnectionFactory(eventLoop_);
dns_ = new PlatformDomainNameResolver(eventLoop_);
+ platformTLSFactories_ = new PlatformTLSFactories();
}
public TimerFactory getTimerFactory() {
@@ -26,8 +29,14 @@ public class JavaNetworkFactories implements NetworkFactories {
public DomainNameResolver getDomainNameResolver() {
return dns_;
}
+
+ public TLSContextFactory getTLSContextFactory() {
+ return platformTLSFactories_.getTLSContextFactory();
+ }
+
private final EventLoop eventLoop_;
private final JavaTimerFactory timers_;
private final JavaConnectionFactory connections_;
private final PlatformDomainNameResolver dns_;
+ private final PlatformTLSFactories platformTLSFactories_;
}