1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  package org.jboss.netty.example.telnet;
17  
18  import org.jboss.netty.channel.ChannelPipeline;
19  import org.jboss.netty.channel.ChannelPipelineFactory;
20  import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
21  import org.jboss.netty.handler.codec.frame.Delimiters;
22  import org.jboss.netty.handler.codec.string.StringDecoder;
23  import org.jboss.netty.handler.codec.string.StringEncoder;
24  import org.jboss.netty.handler.ssl.SslContext;
25  
26  import static org.jboss.netty.channel.Channels.*;
27  
28  
29  
30  
31  public class TelnetServerPipelineFactory implements ChannelPipelineFactory {
32  
33      private final SslContext sslCtx;
34  
35      public TelnetServerPipelineFactory(SslContext sslCtx) {
36          this.sslCtx = sslCtx;
37      }
38  
39      public ChannelPipeline getPipeline() {
40          
41          ChannelPipeline pipeline = pipeline();
42  
43          if (sslCtx != null) {
44              pipeline.addLast("ssl", sslCtx.newHandler());
45          }
46  
47          
48          pipeline.addLast("framer", new DelimiterBasedFrameDecoder(
49                  8192, Delimiters.lineDelimiter()));
50          pipeline.addLast("decoder", new StringDecoder());
51          pipeline.addLast("encoder", new StringEncoder());
52  
53          
54          pipeline.addLast("handler", new TelnetServerHandler());
55  
56          return pipeline;
57      }
58  }