2121import java .util .Collection ;
2222import java .util .List ;
2323import java .util .concurrent .TimeUnit ;
24+ import java .util .function .Function ;
2425import java .util .function .Supplier ;
2526import java .util .stream .Collectors ;
2627
@@ -38,29 +39,29 @@ public void clearTelemetry() {
3839
3940 public List <SpanData > waitForTraces () {
4041 Collection <ExportTraceServiceRequest > requests =
41- waitForTelemetry ("get-traces" , () -> ExportTraceServiceRequest . newBuilder () );
42+ waitForTelemetry ("get-traces" , ExportTraceServiceRequest :: newBuilder );
4243 return TelemetryConverter .getSpanData (
43- requests .stream ()
44- .flatMap (r -> r .getResourceSpansList ().stream ())
45- .collect (Collectors .toList ()));
44+ convert (requests , ExportTraceServiceRequest ::getResourceSpansList ));
4645 }
4746
4847 public Collection <MetricData > waitForMetrics () {
4948 Collection <ExportMetricsServiceRequest > requests =
50- waitForTelemetry ("get-metrics" , () -> ExportMetricsServiceRequest . newBuilder () );
49+ waitForTelemetry ("get-metrics" , ExportMetricsServiceRequest :: newBuilder );
5150 return TelemetryConverter .getMetricsData (
52- requests .stream ()
53- .flatMap (r -> r .getResourceMetricsList ().stream ())
54- .collect (Collectors .toList ()));
51+ convert (requests , ExportMetricsServiceRequest ::getResourceMetricsList ));
5552 }
5653
5754 public Collection <LogRecordData > waitForLogs () {
5855 Collection <ExportLogsServiceRequest > requests =
59- waitForTelemetry ("get-logs" , () -> ExportLogsServiceRequest . newBuilder () );
56+ waitForTelemetry ("get-logs" , ExportLogsServiceRequest :: newBuilder );
6057 return TelemetryConverter .getLogRecordData (
61- requests .stream ()
62- .flatMap (r -> r .getResourceLogsList ().stream ())
63- .collect (Collectors .toList ()));
58+ convert (requests , ExportLogsServiceRequest ::getResourceLogsList ));
59+ }
60+
61+ private static <R , T > List <T > convert (Collection <R > items , Function <R , List <T >> converter ) {
62+ return items .stream ()
63+ .flatMap (request -> converter .apply (request ).stream ())
64+ .collect (Collectors .toList ());
6465 }
6566
6667 @ SuppressWarnings ({"unchecked" , "rawtypes" })
@@ -71,20 +72,19 @@ Collection<T> waitForTelemetry(String path, Supplier<B> builderConstructor) {
7172 .readTree (waitForContent (path ))
7273 .valueStream ()
7374 .map (
74- it -> {
75+ jsonNode -> {
7576 B builder = builderConstructor .get ();
7677 // TODO: Register parser into object mapper to avoid de -> re -> deserialize.
7778 try {
78- JsonFormat .parser ().merge (OBJECT_MAPPER .writeValueAsString (it ), builder );
79+ JsonFormat .parser ().merge (OBJECT_MAPPER .writeValueAsString (jsonNode ), builder );
7980 return (T ) builder .build ();
8081 } catch (InvalidProtocolBufferException | JsonProcessingException e ) {
81- throw new RuntimeException (e );
82+ throw new IllegalStateException (e );
8283 }
8384 })
8485 .collect (Collectors .toList ());
85- } catch (InterruptedException
86- | io .opentelemetry .testing .internal .jackson .core .JsonProcessingException e ) {
87- throw new RuntimeException (e );
86+ } catch (InterruptedException | JsonProcessingException e ) {
87+ throw new IllegalStateException (e );
8888 }
8989 }
9090
0 commit comments