summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/thrifthelper/ThriftManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/thrifthelper/ThriftManager.java')
-rw-r--r--src/main/java/org/openslx/thrifthelper/ThriftManager.java22
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