package org.openslx.imagemaster.thrift.server; import org.apache.log4j.Logger; import org.apache.thrift.protocol.TProtocolFactory; import org.apache.thrift.server.THsHaServer; import org.apache.thrift.server.TServer; import org.apache.thrift.transport.TNonblockingServerSocket; import org.apache.thrift.transport.TNonblockingServerTransport; import org.apache.thrift.transport.TTransportException; import org.openslx.imagemaster.thrift.iface.ImageServer; public class BinaryListener implements Runnable { private static Logger log = Logger.getLogger( BinaryListener.class ); @Override public void run() { final ImageServerHandler handler = new ImageServerHandler(); final ImageServer.Processor processor = new ImageServer.Processor( handler ); final TProtocolFactory protFactory = new TBinaryProtocolSafe.Factory( true, true ); final TNonblockingServerTransport transport; try { transport = new TNonblockingServerSocket( 9090 ); } catch ( TTransportException e ) { log.fatal( "Could not listen on port 9090" ); return; } THsHaServer.Args args = new THsHaServer.Args( transport ).protocolFactory( protFactory ).processor( processor ).workerThreads( 8 ); args.maxReadBufferBytes = 30l * 1000l * 1000l; TServer server = new THsHaServer( args ); log.info( "Starting Binary Thrift" ); server.serve(); System.exit(1); } }