Implement HttpServerResponseCustomizer support for Liberty (#8264)

This commit is contained in:
Lauri Tulmin 2023-04-11 04:09:08 +03:00 committed by GitHub
parent bd7d1415ef
commit 4b257fe4ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 0 deletions

View File

@ -12,9 +12,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
import io.opentelemetry.context.Context;
import io.opentelemetry.context.Scope;
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
import io.opentelemetry.javaagent.bootstrap.http.HttpServerResponseCustomizerHolder;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;
import io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3Accessor;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
@ -124,6 +126,9 @@ public class LibertyWebAppInstrumentation implements TypeInstrumentation {
// Must be set here since Liberty RequestProcessors can use startAsync outside of servlet
// scope.
helper().setAsyncListenerResponse(requestInfo.getRequest(), requestInfo.getResponse());
HttpServerResponseCustomizerHolder.getCustomizer()
.customize(context, requestInfo.getResponse(), Servlet3Accessor.INSTANCE);
}
}
}