Advertisement
Guest User

Untitled

a guest
Jan 16th, 2014
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.49 KB | None | 0 0
  1. public Server build2() {
  2.         final ThreadPoolConfig selectorPoolConfig = ThreadPoolConfig.defaultConfig();
  3.         selectorPoolConfig.setMaxPoolSize(2);
  4.         selectorPoolConfig.setCorePoolSize(2);
  5.         selectorPoolConfig.setPoolName("selector");
  6.  
  7.         final ThreadPoolConfig workerPoolConfig = ThreadPoolConfig.defaultConfig();
  8.         workerPoolConfig.setMaxPoolSize(6);
  9.         workerPoolConfig.setCorePoolSize(6);
  10.         workerPoolConfig.setPoolName("worker");
  11.  
  12.         final SSLContext sslContext = super.buildSSLContext();
  13.  
  14.         final SSLEngineConfigurator sslServerConfig = new SSLEngineConfigurator(sslContext, false, true, true);
  15.         sslServerConfig.setEnabledCipherSuites(new String[]{"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA", "SSL_RSA_WITH_3DES_EDE_CBC_SHA"});
  16.         sslServerConfig.setCipherConfigured(true);
  17.  
  18.         final SSLEngineConfigurator sslClientConfig = sslServerConfig.copy().setClientMode(true);
  19.  
  20.         final FilterChainBuilder filterChainBuilder = FilterChainBuilder.stateless();
  21.         filterChainBuilder.add(new TransportFilter());
  22.         filterChainBuilder.add(new SSLFilter(sslServerConfig, sslClientConfig, true));
  23.         filterChainBuilder.add(new NetStringFilter());
  24.         filterChainBuilder.add(new HandshakeFilter());
  25.         filterChainBuilder.add(new CommandFilter());
  26.         filterChainBuilder.add(new DelayFilter(simulatedDelayMillis));
  27.  
  28.         final TCPNIOTransport transport = TCPNIOTransportBuilder.newInstance()
  29.                 .setIOStrategy(WorkerThreadIOStrategy.getInstance())
  30.                 .setMemoryManager(MemoryManager.DEFAULT_MEMORY_MANAGER)
  31.                 .setProcessor(filterChainBuilder.build())
  32.                 .setReadBufferSize(32 * 1024)
  33.                 .setWriteBufferSize(32 * 1024 * 2)
  34.                 .setKeepAlive(true)
  35.                 .setLinger(TCPNIOTransport.DEFAULT_LINGER)
  36.                 .setTcpNoDelay(true)
  37.                 .setConnectionTimeout(NIOTransport.DEFAULT_CONNECTION_TIMEOUT)
  38.                 .setClientSocketSoTimeout(NIOTransport.DEFAULT_CLIENT_SOCKET_SO_TIMEOUT)
  39.                 .setSelectorThreadPoolConfig(selectorPoolConfig)
  40.                 .setWorkerThreadPoolConfig(workerPoolConfig)
  41.                 .build();
  42.  
  43.         try {
  44.             transport.bind(listenPort);
  45.         } catch (IOException e) {
  46.             throw new ServerException("Failed to bind to port [" + listenPort + "].", e);
  47.         }
  48.  
  49.         return new Server(transport, shutdownGracePeriodMillis, listenPort);
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement