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 static org.jboss.netty.channel.Channels.*;
19
20 import javax.net.ssl.SSLEngine;
21
22 import org.jboss.netty.channel.ChannelPipeline;
23 import org.jboss.netty.channel.ChannelPipelineFactory;
24 import org.jboss.netty.example.securechat.SecureChatSslContextFactory;
25 import org.jboss.netty.handler.codec.http.HttpClientCodec;
26 import org.jboss.netty.handler.codec.http.HttpContentDecompressor;
27 import org.jboss.netty.handler.ssl.SslHandler;
28 import org.jboss.netty.handler.stream.ChunkedWriteHandler;
29
30 public class HttpUploadClientPipelineFactory implements ChannelPipelineFactory {
31 private final boolean ssl;
32
33 public HttpUploadClientPipelineFactory(boolean ssl) {
34 this.ssl = ssl;
35 }
36
37 public ChannelPipeline getPipeline() throws Exception {
38
39 ChannelPipeline pipeline = pipeline();
40
41
42 if (ssl) {
43 SSLEngine engine =
44 SecureChatSslContextFactory.getClientContext().createSSLEngine();
45 engine.setUseClientMode(true);
46
47 SslHandler handler = new SslHandler(engine);
48 handler.setIssueHandshake(true);
49 pipeline.addLast("ssl", handler);
50 }
51
52 pipeline.addLast("codec", new HttpClientCodec());
53
54
55 pipeline.addLast("inflater", new HttpContentDecompressor());
56
57
58 pipeline.addLast("chunkedWriter", new ChunkedWriteHandler());
59
60 pipeline.addLast("handler", new HttpUploadClientHandler());
61 return pipeline;
62 }
63 }