diff --git a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java index f40ae47119..b12fe36b89 100644 --- a/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java +++ b/integration-tests/tracecontext/src/main/java/io/opentelemetry/Application.java @@ -12,7 +12,6 @@ import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator; import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.context.propagation.TextMapGetter; -import io.opentelemetry.context.propagation.TextMapSetter; import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; @@ -23,9 +22,6 @@ import javax.servlet.http.HttpServletRequest; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.RequestBody; -import spark.Request; -import spark.Response; -import spark.Route; import spark.Spark; public final class Application { @@ -45,101 +41,90 @@ public final class Application { Spark.port(5000); Spark.post( "verify-tracecontext", - new Route() { - @Override - public Object handle(Request request, Response response) { - final Gson gson = new Gson(); + (request, response) -> { + final Gson gson = new Gson(); - final io.opentelemetry.Request[] requests = - gson.fromJson(request.body(), io.opentelemetry.Request[].class); + final io.opentelemetry.Request[] requests = + gson.fromJson(request.body(), io.opentelemetry.Request[].class); - Context context = - openTelemetry - .getPropagators() - .getTextMapPropagator() - .extract( - Context.current(), - request.raw(), - new TextMapGetter() { - @Override - public Iterable keys(HttpServletRequest carrier) { - return Collections.list(carrier.getHeaderNames()); - } - - @Override - public String get(HttpServletRequest carrier, String key) { - Enumeration headers = carrier.getHeaders(key); - if (headers == null || !headers.hasMoreElements()) { - return null; - } - List values = new ArrayList<>(); - while (headers.hasMoreElements()) { - String nextElement = headers.nextElement(); - if (!nextElement.trim().isEmpty()) { - values.add(nextElement); - } - } - if (values.isEmpty()) { - return null; - } - if (values.size() == 1) { - return values.get(0); - } - StringBuilder builder = new StringBuilder(values.get(0)); - for (int i = 1; i < values.size(); i++) { - builder.append(",").append(values.get(i)); - } - - return builder.toString(); - } - }); - - for (io.opentelemetry.Request req : requests) { - Span span = - openTelemetry - .getTracer("validation-server") - .spanBuilder("Entering Validation Server") - .setParent(context) - .startSpan(); - - Context withSpanContext = context.with(span); - - // Make a new request using the builder - okhttp3.Request.Builder reqBuilder = new okhttp3.Request.Builder(); - - // Inject the current context into the new request. + Context context = openTelemetry .getPropagators() .getTextMapPropagator() - .inject( - withSpanContext, - reqBuilder, - new TextMapSetter() { + .extract( + Context.current(), + request.raw(), + new TextMapGetter() { @Override - public void set(okhttp3.Request.Builder carrier, String key, String value) { - carrier.addHeader(key, value); + public Iterable keys(HttpServletRequest carrier) { + return Collections.list(carrier.getHeaderNames()); + } + + @Override + public String get(HttpServletRequest carrier, String key) { + Enumeration headers = carrier.getHeaders(key); + if (headers == null || !headers.hasMoreElements()) { + return null; + } + List values = new ArrayList<>(); + while (headers.hasMoreElements()) { + String nextElement = headers.nextElement(); + if (!nextElement.trim().isEmpty()) { + values.add(nextElement); + } + } + if (values.isEmpty()) { + return null; + } + if (values.size() == 1) { + return values.get(0); + } + StringBuilder builder = new StringBuilder(values.get(0)); + for (int i = 1; i < values.size(); i++) { + builder.append(",").append(values.get(i)); + } + + return builder.toString(); } }); - // Add the post body and build the request - String argumentsJson = gson.toJson(req.getArguments()); - RequestBody argumentsBody = - RequestBody.create( - argumentsJson, MediaType.parse("application/json; charset=utf-8")); - okhttp3.Request newRequest = reqBuilder.url(req.getUrl()).post(argumentsBody).build(); + for (io.opentelemetry.Request req : requests) { + Span span = + openTelemetry + .getTracer("validation-server") + .spanBuilder("Entering Validation Server") + .setParent(context) + .startSpan(); - // Execute the request - OkHttpClient client = new OkHttpClient(); - try (okhttp3.Response res = client.newCall(newRequest).execute()) { - logger.info("response: " + res.code()); - } catch (Exception e) { - logger.log(Level.SEVERE, "failed to send", e); - } - span.end(); + Context withSpanContext = context.with(span); + + // Make a new request using the builder + okhttp3.Request.Builder reqBuilder = new okhttp3.Request.Builder(); + + // Inject the current context into the new request. + openTelemetry + .getPropagators() + .getTextMapPropagator() + .inject(withSpanContext, reqBuilder, okhttp3.Request.Builder::addHeader); + + // Add the post body and build the request + String argumentsJson = gson.toJson(req.getArguments()); + RequestBody argumentsBody = + RequestBody.create( + argumentsJson, MediaType.parse("application/json; charset=utf-8")); + okhttp3.Request newRequest = reqBuilder.url(req.getUrl()).post(argumentsBody).build(); + + // Execute the request + OkHttpClient client = new OkHttpClient(); + try (okhttp3.Response res = client.newCall(newRequest).execute()) { + logger.info("response: " + res.code()); + } catch (Exception e) { + logger.log(Level.SEVERE, "failed to send", e); } - - return "Done"; + span.end(); } + + return "Done"; }); Spark.awaitInitialization();