migrate AsyncUraTripReader to Java 11 HttpClient with custom subscriber
All checks were successful
continuous-integration/drone/push Build is passing

Instead of reading the InputStream we now use a custom line subscriber
which asynchronously processes each JSON line from the response.
This commit is contained in:
2020-10-02 11:59:20 +02:00
parent 304ab9db7a
commit 69f9e0124a
3 changed files with 95 additions and 58 deletions

View File

@ -31,6 +31,7 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.util.Collections;
import java.util.Deque;
@ -91,7 +92,7 @@ public class AsyncUraTripReaderTest {
readLinesToMock(1, "/__files/stream_V1_stops_all.txt", 8);
AsyncUraTripReader tr = new AsyncUraTripReader(
new URL(httpMock.baseUrl() + "/interfaces/ura/stream_V1"),
URI.create(httpMock.baseUrl() + "/interfaces/ura/stream_V1"),
Collections.singletonList(
trip -> {
trips.add(trip);
@ -121,7 +122,7 @@ public class AsyncUraTripReaderTest {
readLinesToMock(2, "/__files/stream_V2_stops_all.txt", 8);
tr = new AsyncUraTripReader(
new URL(httpMock.baseUrl() + "/interfaces/ura/stream_V2"),
URI.create(httpMock.baseUrl() + "/interfaces/ura/stream_V2"),
Collections.singletonList(trips::add)
);
@ -166,7 +167,7 @@ public class AsyncUraTripReaderTest {
readLinesToMock(1, "/__files/stream_V1_stops_all.txt", 8);
AsyncUraTripReader tr = new AsyncUraTripReader(
new URL(httpMock.baseUrl() + "/interfaces/ura/stream_V1"),
URI.create(httpMock.baseUrl() + "/interfaces/ura/stream_V1"),
Collections.singletonList(
trip -> {
trips.add(trip);
@ -191,7 +192,7 @@ public class AsyncUraTripReaderTest {
tr.close();
// Wait for another second.
TimeUnit.MILLISECONDS.sleep(100);
TimeUnit.MILLISECONDS.sleep(1);
assertThat("Unexpected number of trips after all lines have been flushed", trips.size(), is(1));
}