Skip to content

Commit 8822cba

Browse files
author
Stephane Landelle
committed
Provide a way to configure ChannelPipelines, close AsyncHttpClient#717
1 parent ec54882 commit 8822cba

File tree

3 files changed

+36
-38
lines changed

3 files changed

+36
-38
lines changed

providers/netty/src/main/java/org/asynchttpclient/providers/netty/NettyAsyncHttpProviderConfig.java

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.netty.buffer.ByteBuf;
1717
import io.netty.channel.Channel;
1818
import io.netty.channel.ChannelOption;
19+
import io.netty.channel.ChannelPipeline;
1920
import io.netty.channel.EventLoopGroup;
2021
import io.netty.util.Timer;
2122

@@ -87,9 +88,9 @@ public Set<Map.Entry<ChannelOption<Object>, Object>> propertiesSet() {
8788
return properties.entrySet();
8889
}
8990

90-
public static interface AdditionalChannelInitializer {
91+
public static interface AdditionalPipelineInitializer {
9192

92-
void initChannel(Channel ch) throws Exception;
93+
void initPipeline(ChannelPipeline pipeline) throws Exception;
9394
}
9495

9596
public static interface ResponseBodyPartFactory {
@@ -130,10 +131,10 @@ public NettyWebSocket newNettyWebSocket(Channel channel, NettyAsyncHttpProviderC
130131
*/
131132
private EventLoopGroup eventLoopGroup;
132133

133-
private AdditionalChannelInitializer httpAdditionalChannelInitializer;
134-
private AdditionalChannelInitializer wsAdditionalChannelInitializer;
135-
private AdditionalChannelInitializer httpsAdditionalChannelInitializer;
136-
private AdditionalChannelInitializer wssAdditionalChannelInitializer;
134+
private AdditionalPipelineInitializer httpAdditionalPipelineInitializer;
135+
private AdditionalPipelineInitializer wsAdditionalPipelineInitializer;
136+
private AdditionalPipelineInitializer httpsAdditionalPipelineInitializer;
137+
private AdditionalPipelineInitializer wssAdditionalPipelineInitializer;
137138

138139
/**
139140
* Allow configuring Netty's HttpClientCodecs.
@@ -176,36 +177,36 @@ public void setEventLoopGroup(EventLoopGroup eventLoopGroup) {
176177
this.eventLoopGroup = eventLoopGroup;
177178
}
178179

179-
public AdditionalChannelInitializer getHttpAdditionalChannelInitializer() {
180-
return httpAdditionalChannelInitializer;
180+
public AdditionalPipelineInitializer getHttpAdditionalPipelineInitializer() {
181+
return httpAdditionalPipelineInitializer;
181182
}
182183

183-
public void setHttpAdditionalChannelInitializer(AdditionalChannelInitializer httpAdditionalChannelInitializer) {
184-
this.httpAdditionalChannelInitializer = httpAdditionalChannelInitializer;
184+
public void setHttpAdditionalPipelineInitializer(AdditionalPipelineInitializer httpAdditionalPipelineInitializer) {
185+
this.httpAdditionalPipelineInitializer = httpAdditionalPipelineInitializer;
185186
}
186187

187-
public AdditionalChannelInitializer getWsAdditionalChannelInitializer() {
188-
return wsAdditionalChannelInitializer;
188+
public AdditionalPipelineInitializer getWsAdditionalPipelineInitializer() {
189+
return wsAdditionalPipelineInitializer;
189190
}
190191

191-
public void setWsAdditionalChannelInitializer(AdditionalChannelInitializer wsAdditionalChannelInitializer) {
192-
this.wsAdditionalChannelInitializer = wsAdditionalChannelInitializer;
192+
public void setWsAdditionalPipelineInitializer(AdditionalPipelineInitializer wsAdditionalPipelineInitializer) {
193+
this.wsAdditionalPipelineInitializer = wsAdditionalPipelineInitializer;
193194
}
194195

195-
public AdditionalChannelInitializer getHttpsAdditionalChannelInitializer() {
196-
return httpsAdditionalChannelInitializer;
196+
public AdditionalPipelineInitializer getHttpsAdditionalPipelineInitializer() {
197+
return httpsAdditionalPipelineInitializer;
197198
}
198199

199-
public void setHttpsAdditionalChannelInitializer(AdditionalChannelInitializer httpsAdditionalChannelInitializer) {
200-
this.httpsAdditionalChannelInitializer = httpsAdditionalChannelInitializer;
200+
public void setHttpsAdditionalPipelineInitializer(AdditionalPipelineInitializer httpsAdditionalPipelineInitializer) {
201+
this.httpsAdditionalPipelineInitializer = httpsAdditionalPipelineInitializer;
201202
}
202203

203-
public AdditionalChannelInitializer getWssAdditionalChannelInitializer() {
204-
return wssAdditionalChannelInitializer;
204+
public AdditionalPipelineInitializer getWssAdditionalPipelineInitializer() {
205+
return wssAdditionalPipelineInitializer;
205206
}
206207

207-
public void setWssAdditionalChannelInitializer(AdditionalChannelInitializer wssAdditionalChannelInitializer) {
208-
this.wssAdditionalChannelInitializer = wssAdditionalChannelInitializer;
208+
public void setWssAdditionalPipelineInitializer(AdditionalPipelineInitializer wssAdditionalPipelineInitializer) {
209+
this.wssAdditionalPipelineInitializer = wssAdditionalPipelineInitializer;
209210
}
210211

211212
public int getHttpClientCodecMaxInitialLineLength() {

providers/netty/src/main/java/org/asynchttpclient/providers/netty/channel/ChannelManager.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,8 @@ protected void initChannel(Channel ch) throws Exception {
191191
.addLast(CHUNKED_WRITER_HANDLER, new ChunkedWriteHandler())//
192192
.addLast(HTTP_PROCESSOR, httpProcessor);
193193

194-
if (nettyConfig.getHttpAdditionalChannelInitializer() != null)
195-
nettyConfig.getHttpAdditionalChannelInitializer().initChannel(ch);
194+
if (nettyConfig.getHttpAdditionalPipelineInitializer() != null)
195+
nettyConfig.getHttpAdditionalPipelineInitializer().initPipeline(ch.pipeline());
196196
}
197197
});
198198

@@ -203,9 +203,8 @@ protected void initChannel(Channel ch) throws Exception {
203203
.addLast(HTTP_HANDLER, newHttpClientCodec())//
204204
.addLast(WS_PROCESSOR, wsProcessor);
205205

206-
if (nettyConfig.getWsAdditionalChannelInitializer() != null) {
207-
nettyConfig.getWsAdditionalChannelInitializer().initChannel(ch);
208-
}
206+
if (nettyConfig.getWsAdditionalPipelineInitializer() != null)
207+
nettyConfig.getWsAdditionalPipelineInitializer().initPipeline(ch.pipeline());
209208
}
210209
});
211210

@@ -220,8 +219,8 @@ protected void initChannel(Channel ch) throws Exception {
220219
.addLast(CHUNKED_WRITER_HANDLER, new ChunkedWriteHandler())//
221220
.addLast(HTTP_PROCESSOR, httpProcessor);
222221

223-
if (nettyConfig.getHttpsAdditionalChannelInitializer() != null)
224-
nettyConfig.getHttpsAdditionalChannelInitializer().initChannel(ch);
222+
if (nettyConfig.getHttpsAdditionalPipelineInitializer() != null)
223+
nettyConfig.getHttpsAdditionalPipelineInitializer().initPipeline(ch.pipeline());
225224
}
226225
});
227226

@@ -234,9 +233,8 @@ protected void initChannel(Channel ch) throws Exception {
234233
.addLast(HTTP_HANDLER, newHttpClientCodec())//
235234
.addLast(WS_PROCESSOR, wsProcessor);
236235

237-
if (nettyConfig.getWssAdditionalChannelInitializer() != null) {
238-
nettyConfig.getWssAdditionalChannelInitializer().initChannel(ch);
239-
}
236+
if (nettyConfig.getWssAdditionalPipelineInitializer() != null)
237+
nettyConfig.getWssAdditionalPipelineInitializer().initPipeline(ch.pipeline());
240238
}
241239
});
242240
}

providers/netty/src/test/java/org/asynchttpclient/providers/netty/NettyAsyncProviderPipelineTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
import org.asynchttpclient.RequestBuilder;
2323
import org.asynchttpclient.Response;
2424
import org.asynchttpclient.async.AbstractBasicTest;
25-
import org.asynchttpclient.providers.netty.NettyAsyncHttpProviderConfig.AdditionalChannelInitializer;
25+
import org.asynchttpclient.providers.netty.NettyAsyncHttpProviderConfig.AdditionalPipelineInitializer;
2626
import org.testng.annotations.Test;
2727

28-
import io.netty.channel.Channel;
2928
import io.netty.channel.ChannelHandlerContext;
3029
import io.netty.channel.ChannelInboundHandlerAdapter;
30+
import io.netty.channel.ChannelPipeline;
3131
import io.netty.handler.codec.http.HttpMessage;
3232

3333
import java.util.concurrent.CountDownLatch;
@@ -44,10 +44,9 @@ public AsyncHttpClient getAsyncHttpClient(AsyncHttpClientConfig config) {
4444
public void asyncPipelineTest() throws Exception {
4545

4646
NettyAsyncHttpProviderConfig nettyConfig = new NettyAsyncHttpProviderConfig();
47-
nettyConfig.setHttpAdditionalChannelInitializer(new AdditionalChannelInitializer() {
48-
public void initChannel(Channel ch) throws Exception {
49-
// super.initPlainChannel(ch);
50-
ch.pipeline().addBefore("inflater", "copyEncodingHeader", new CopyEncodingHandler());
47+
nettyConfig.setHttpAdditionalPipelineInitializer(new AdditionalPipelineInitializer() {
48+
public void initPipeline(ChannelPipeline pipeline) throws Exception {
49+
pipeline.addBefore("inflater", "copyEncodingHeader", new CopyEncodingHandler());
5150
}
5251
});
5352
AsyncHttpClient p = getAsyncHttpClient(new AsyncHttpClientConfig.Builder()

0 commit comments

Comments
 (0)