1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.waarp.openr66.protocol.monitoring;
22
23 import io.netty.channel.ChannelInitializer;
24 import io.netty.channel.ChannelPipeline;
25 import io.netty.channel.socket.SocketChannel;
26 import io.netty.handler.codec.http.HttpClientCodec;
27 import io.netty.handler.ssl.SslContext;
28
29 public class HttpMonitoringExporterClientInitializer
30 extends ChannelInitializer<SocketChannel> {
31 private final SslContext sslCtx;
32 private final HttpMonitoringExporterClient httpMonitoringExporterClient;
33
34 public HttpMonitoringExporterClientInitializer(final SslContext sslCtx,
35 final HttpMonitoringExporterClient httpMonitoringExporterClient) {
36 this.sslCtx = sslCtx;
37 this.httpMonitoringExporterClient = httpMonitoringExporterClient;
38 }
39
40 @Override
41 protected void initChannel(final SocketChannel ch) throws Exception {
42 final ChannelPipeline pipeline = ch.pipeline();
43
44 if (sslCtx != null) {
45 pipeline.addLast("ssl", sslCtx.newHandler(ch.alloc()));
46 }
47 pipeline.addLast("codec", new HttpClientCodec());
48 pipeline.addLast("handler", new HttpMonitoringExporterClientHandler(
49 httpMonitoringExporterClient));
50 }
51 }