A little bit of java 8 cleanup in the W3C integration test (#3078)

This commit is contained in:
John Watson 2021-03-30 18:57:47 -07:00 committed by GitHub
parent 11fcc29b0a
commit c667636643
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 72 additions and 87 deletions

View File

@ -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<HttpServletRequest>() {
@Override
public Iterable<String> keys(HttpServletRequest carrier) {
return Collections.list(carrier.getHeaderNames());
}
@Override
public String get(HttpServletRequest carrier, String key) {
Enumeration<String> headers = carrier.getHeaders(key);
if (headers == null || !headers.hasMoreElements()) {
return null;
}
List<String> 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<okhttp3.Request.Builder>() {
.extract(
Context.current(),
request.raw(),
new TextMapGetter<HttpServletRequest>() {
@Override
public void set(okhttp3.Request.Builder carrier, String key, String value) {
carrier.addHeader(key, value);
public Iterable<String> keys(HttpServletRequest carrier) {
return Collections.list(carrier.getHeaderNames());
}
@Override
public String get(HttpServletRequest carrier, String key) {
Enumeration<String> headers = carrier.getHeaders(key);
if (headers == null || !headers.hasMoreElements()) {
return null;
}
List<String> 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();