diff options
Diffstat (limited to 'src/main/java/org/openslx/thrifthelper/ThriftManager.java')
-rw-r--r-- | src/main/java/org/openslx/thrifthelper/ThriftManager.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/thrifthelper/ThriftManager.java b/src/main/java/org/openslx/thrifthelper/ThriftManager.java index 2fe706d..07256b2 100644 --- a/src/main/java/org/openslx/thrifthelper/ThriftManager.java +++ b/src/main/java/org/openslx/thrifthelper/ThriftManager.java @@ -8,13 +8,14 @@ import java.net.Socket; import javax.net.SocketFactory; import javax.net.ssl.SSLContext; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.thrift.TServiceClient; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; -import org.apache.thrift.transport.TFramedTransport; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransportException; +import org.apache.thrift.transport.layered.TFramedTransport; import org.openslx.bwlp.thrift.iface.MasterServer; import org.openslx.bwlp.thrift.iface.SatelliteServer; import org.openslx.thrifthelper.ThriftHandler.WantClientCallback; @@ -23,7 +24,7 @@ import org.openslx.util.Util; public class ThriftManager<T> { - private final static Logger LOGGER = Logger.getLogger( ThriftManager.class ); + private final static Logger LOGGER = LogManager.getLogger( ThriftManager.class ); public interface ErrorCallback { @@ -40,14 +41,13 @@ public class ThriftManager<T> private final T client; - @SuppressWarnings( "unchecked" ) private ThriftManager( Class<T> ifClazz, Class<? extends TServiceClient> clientClazz, WantClientCallback<? extends TServiceClient> internalCallback, ErrorCallback errorCb ) { - this.client = (T)Proxy.newProxyInstance( + this.client = ifClazz.cast( Proxy.newProxyInstance( ifClazz.getClassLoader(), new Class[] { ifClazz }, new ThriftHandler<TServiceClient>( - clientClazz, internalCallback, errorCb ) ); + clientClazz, internalCallback, errorCb ) ) ); } private static ThriftManager<MasterServer.Iface> masterManager = null; @@ -55,6 +55,7 @@ public class ThriftManager<T> private static ErrorCallback satErrorCallback = null; private static ErrorCallback masterErrorCallback = null; + private static SSLContext satSslContext = null; /** * Sets the address of the master server @@ -106,6 +107,7 @@ public class ThriftManager<T> LOGGER.error( "Given address is empty." ); return false; } + satSslContext = ctx; // finally set it satelliteManager = new ThriftManager<SatelliteServer.Iface>( SatelliteServer.Iface.class, SatelliteServer.Client.class, new WantClientCallback<SatelliteServer.Client>() { @@ -123,6 +125,14 @@ public class ThriftManager<T> } ); return true; } + + /** + * Get the SSL context used for talking to the satellite server (if any) + */ + public static SSLContext getSatelliteSslContext() + { + return satSslContext; + } /** * Returns the singleton client of the thrift connection to the satellite |