1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.http.upload;
17
18 import org.jboss.netty.channel.ChannelPipeline;
19 import org.jboss.netty.channel.ChannelPipelineFactory;
20 import org.jboss.netty.handler.codec.http.HttpContentCompressor;
21 import org.jboss.netty.handler.codec.http.HttpRequestDecoder;
22 import org.jboss.netty.handler.codec.http.HttpResponseEncoder;
23 import org.jboss.netty.handler.ssl.SslContext;
24 import org.jboss.netty.handler.ssl.SslHandler;
25
26 import static org.jboss.netty.channel.Channels.*;
27
28 public class HttpUploadServerPipelineFactory implements ChannelPipelineFactory {
29
30 private final SslContext sslCtx;
31
32 public HttpUploadServerPipelineFactory(SslContext sslCtx) {
33 this.sslCtx = sslCtx;
34 }
35
36 public ChannelPipeline getPipeline() {
37
38 ChannelPipeline pipeline = pipeline();
39
40 if (sslCtx != null) {
41 SslHandler handler = sslCtx.newHandler();
42 handler.setIssueHandshake(true);
43 pipeline.addLast("ssl", handler);
44 }
45
46 pipeline.addLast("decoder", new HttpRequestDecoder());
47
48 pipeline.addLast("encoder", new HttpResponseEncoder());
49
50
51 pipeline.addLast("deflater", new HttpContentCompressor());
52
53 pipeline.addLast("handler", new HttpUploadServerHandler());
54 return pipeline;
55 }
56 }