@Override
public ServiceRequestContext newDerivedContext(Request request) {
final DefaultServiceRequestContext ctx = new DefaultServiceRequestContext(
cfg, ch, meterRegistry(), sessionProtocol(), pathMappingContext,
pathMappingResult, (HttpRequest) request, sslSession(), proxiedAddresses(), clientAddress);
final HttpHeaders additionalHeaders = additionalResponseHeaders();
if (!additionalHeaders.isEmpty()) {
ctx.setAdditionalResponseHeaders(additionalHeaders);
}
final HttpHeaders additionalTrailers = additionalResponseTrailers();
if (!additionalTrailers.isEmpty()) {
ctx.setAdditionalResponseTrailers(additionalTrailers);
}
for (final Iterator<Attribute<?>> i = attrs(); i.hasNext();) {
ctx.addAttr(i.next());
}
return ctx;
}