Skip to content

Commit a560d24

Browse files
authored
[test] Replace AccessLogAppender with LogTracker (#2666)
Remove duplications
1 parent 1c77bde commit a560d24

File tree

1 file changed

+11
-44
lines changed

1 file changed

+11
-44
lines changed

reactor-netty-http/src/test/java/reactor/netty/http/HttpProtocolsTests.java

Lines changed: 11 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import ch.qos.logback.classic.Level;
1919
import ch.qos.logback.classic.Logger;
2020
import ch.qos.logback.classic.spi.ILoggingEvent;
21-
import ch.qos.logback.core.AppenderBase;
2221
import ch.qos.logback.core.read.ListAppender;
2322
import io.netty.buffer.ByteBuf;
2423
import io.netty.channel.Channel;
@@ -53,6 +52,7 @@
5352
import reactor.netty.BaseHttpTest;
5453
import reactor.netty.ByteBufFlux;
5554
import reactor.netty.Connection;
55+
import reactor.netty.LogTracker;
5656
import reactor.netty.NettyPipeline;
5757
import reactor.netty.http.client.HttpClient;
5858
import reactor.netty.http.client.HttpClientConfig;
@@ -75,7 +75,6 @@
7575
import java.util.List;
7676
import java.util.concurrent.CountDownLatch;
7777
import java.util.concurrent.TimeUnit;
78-
import java.util.concurrent.atomic.AtomicReference;
7978
import java.util.concurrent.atomic.AtomicBoolean;
8079
import java.util.concurrent.atomic.AtomicLong;
8180
import java.util.function.Function;
@@ -366,33 +365,24 @@ void testAccessLog(HttpServer server, HttpClient client) throws Exception {
366365
.accessLog(true)
367366
.bindNow();
368367

369-
AccessLogAppender accessLogAppender = new AccessLogAppender();
370-
accessLogAppender.start();
371-
Logger accessLogger = (Logger) LoggerFactory.getLogger("reactor.netty.http.server.AccessLog");
372-
AtomicReference<String> protocol = new AtomicReference<>();
373-
try {
374-
accessLogger.addAppender(accessLogAppender);
375-
368+
HttpProtocol[] serverProtocols = server.configuration().protocols();
369+
HttpProtocol[] clientProtocols = client.configuration().protocols();
370+
boolean isHttp11 = (serverProtocols.length == 1 && serverProtocols[0] == HttpProtocol.HTTP11) ||
371+
(clientProtocols.length == 1 && clientProtocols[0] == HttpProtocol.HTTP11);
372+
String expectedLogRecord = "GET / HTTP/" + (isHttp11 ? "1.1" : "2.0") + "\" 200";
373+
try (LogTracker logTracker = new LogTracker("reactor.netty.http.server.AccessLog", expectedLogRecord)) {
376374
client.port(disposableServer.port())
377375
.get()
378376
.uri("/")
379377
.responseSingle((res, bytes) -> {
380-
protocol.set(res.responseHeaders().get("x-http2-stream-id") != null ? "2.0" : "1.1");
381378
return Mono.just(res.responseHeaders().get(NettyPipeline.AccessLogHandler));
382379
})
383380
.as(StepVerifier::create)
384381
.expectNext("FOUND")
385382
.expectComplete()
386383
.verify(Duration.ofSeconds(5));
387384

388-
assertThat(accessLogAppender.latch.await(5, TimeUnit.SECONDS)).isTrue();
389-
390-
assertThat(accessLogAppender.list).hasSize(1);
391-
assertThat(accessLogAppender.list.get(0).getFormattedMessage()).contains("GET / HTTP/" + protocol.get() + "\" 200");
392-
}
393-
finally {
394-
accessLogger.detachAppender(accessLogAppender);
395-
accessLogAppender.stop();
385+
assertThat(logTracker.latch.await(5, TimeUnit.SECONDS)).isTrue();
396386
}
397387
}
398388

@@ -417,12 +407,8 @@ void testAccessLogWithForwardedHeader(HttpServer server, HttpClient client) thro
417407
args.connectionInformation().scheme()))
418408
.bindNow();
419409

420-
AccessLogAppender accessLogAppender = new AccessLogAppender();
421-
accessLogAppender.start();
422-
Logger accessLogger = (Logger) LoggerFactory.getLogger("reactor.netty.http.server.AccessLog");
423-
try {
424-
accessLogger.addAppender(accessLogAppender);
425-
410+
String expectedLogRecord = "192.0.2.60 203.0.113.43 http";
411+
try (LogTracker logTracker = new LogTracker("reactor.netty.http.server.AccessLog", expectedLogRecord)) {
426412
client.port(disposableServer.port())
427413
.doOnRequest((req, cnx) -> req.addHeader("Forwarded",
428414
"for=192.0.2.60;proto=http;host=203.0.113.43"))
@@ -434,14 +420,7 @@ void testAccessLogWithForwardedHeader(HttpServer server, HttpClient client) thro
434420
.expectComplete()
435421
.verify(Duration.ofSeconds(5));
436422

437-
assertThat(accessLogAppender.latch.await(5, TimeUnit.SECONDS)).isTrue();
438-
439-
assertThat(accessLogAppender.list).hasSize(1);
440-
assertThat(accessLogAppender.list.get(0).getFormattedMessage()).isEqualTo("192.0.2.60 203.0.113.43 http");
441-
}
442-
finally {
443-
accessLogger.detachAppender(accessLogAppender);
444-
accessLogAppender.stop();
423+
assertThat(logTracker.latch.await(5, TimeUnit.SECONDS)).isTrue();
445424
}
446425
}
447426

@@ -761,18 +740,6 @@ else if (clientProtocols.length == 2 && clientProtocols[1] == HttpProtocol.H2C)
761740
}
762741
}
763742

764-
static final class AccessLogAppender extends AppenderBase<ILoggingEvent> {
765-
766-
final CountDownLatch latch = new CountDownLatch(1);
767-
final List<ILoggingEvent> list = new ArrayList<>();
768-
769-
@Override
770-
protected void append(ILoggingEvent eventObject) {
771-
list.add(eventObject);
772-
latch.countDown();
773-
}
774-
}
775-
776743
static final class IdleTimeoutTestChannelInboundHandler extends ChannelInboundHandlerAdapter {
777744

778745
final CountDownLatch latch = new CountDownLatch(1);

0 commit comments

Comments
 (0)