public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline pipeline = Channels.pipeline();
// logging handler
pipeline.addLast("LOGGER", new LoggingHandler());
// responsible for observing idle timeout - Netty
pipeline.addLast("idleTimeout", new NettyIdleHandler(this.context, this.timer, 0, 0, this.context.getIdleTimeoutSeconds()));
// responsible for reading until SCMP frame is complete
pipeline.addLast("framer", new NettySCMPFrameDecoder());
// executer to run NettyTcpRequesterResponseHandler in own thread
pipeline.addLast("executor", new ExecutionHandler(AppContext.getSCWorkerThreadPool()));
// responsible for handle response - Stabilit