private Processor createProcessor(ServerConfig serverCfg) throws TarsException { Processor processor = null; Class<? extends Processor> processorClass = skeleton.getProcessorClass(); if (processorClass == null) { return new TarsServantProcessor(); } if (processorClass != null) { Constructor<? extends Processor> constructor; try { constructor = processorClass.getConstructor(new Class[] { ServantAdapter.class }); processor = constructor.newInstance(this); } catch (Exception e) { throw new TarsException("error occurred on create codec, codec=" + processorClass.getName()); } } return processor; }
private Processor createProcessor(ServerConfig serverCfg) throws TarsException { Processor processor = null; Class<? extends Processor> processorClass = skeleton.getProcessorClass(); if (processorClass == null) { return new TarsServantProcessor(); } if (processorClass != null) { Constructor<? extends Processor> constructor; try { constructor = processorClass.getConstructor(new Class[] { ServantAdapter.class }); processor = constructor.newInstance(this); } catch (Exception e) { throw new TarsException("error occurred on create codec, codec=" + processorClass.getName()); } } return processor; }
public void bind() throws IOException { ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = new TarsCodec(serverCfg.getCharsetName()); Processor processor = new TarsServantProcessor(); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }
public void bind() throws IOException { ServerConfig serverCfg = ConfigurationManager.getInstance().getServerConfig(); boolean keepAlive = true; Codec codec = new TarsCodec(serverCfg.getCharsetName()); Processor processor = new TarsServantProcessor(); Executor threadPool = ServantThreadPoolManager.get(servantAdapterConfig); Endpoint endpoint = this.servantAdapterConfig.getEndpoint(); if (endpoint.type().equals("tcp")) { this.selectorManager = new SelectorManager(Utils.getSelectorPoolSize(), new ServantProtocolFactory(codec), threadPool, processor, keepAlive, "server-tcp-reactor", false); this.selectorManager.setTcpNoDelay(serverCfg.isTcpNoDelay()); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); ServerSocketChannel serverChannel = ServerSocketChannel.open(); serverChannel.socket().bind(new InetSocketAddress(endpoint.host(), endpoint.port()), 1024); serverChannel.configureBlocking(false); selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_ACCEPT); System.out.println("[SERVER] server started at " + endpoint + "..."); } else if (endpoint.type().equals("udp")) { this.selectorManager = new SelectorManager(1, new ServantProtocolFactory(codec), threadPool, processor, false, "server-udp-reactor", true); this.selectorManager.start(); System.out.println("[SERVER] server starting at " + endpoint + "..."); DatagramChannel serverChannel = DatagramChannel.open(); DatagramSocket socket = serverChannel.socket(); socket.bind(new InetSocketAddress(endpoint.host(), endpoint.port())); serverChannel.configureBlocking(false); this.selectorManager.getReactor(0).registerChannel(serverChannel, SelectionKey.OP_READ); System.out.println("[SERVER] servant started at " + endpoint + "..."); } }