}
};
}
private HttpResponseDeenrichmentFilter getHttpResponseDeenrichmentFilter(OperationalContextRetriver retriever) {
final HttpResponseDeenrichmentFilter responseDeenrichmentFilter = serviceLoader().onlyOne(
HttpResponseDeenrichmentFilter.class);
final ContextualOperation<FilterResponseContext, HttpResponse> filterResponse = Contextualizer.contextualize(retriever,
new ContextualOperation<FilterResponseContext, HttpResponse>() {
@Override
public HttpResponse performInContext(FilterResponseContext ctx) {
return responseDeenrichmentFilter.filterResponse(ctx.request, ctx.response);
}
});
final ContextualOperation<HttpRequest, Boolean> shouldFilterResponses = Contextualizer.contextualize(retriever,
new ContextualOperation<HttpRequest, Boolean>() {
@Override
public Boolean performInContext(HttpRequest request) {
return responseDeenrichmentFilter.filterResponses(request);
}
});
final ContextualOperation<Void, Integer> getMaxResponseSize = Contextualizer.contextualize(retriever,
new ContextualOperation<Void, Integer>() {
@Override
public Integer performInContext(Void argument) {
return responseDeenrichmentFilter.getMaxResponseSize();
}
});
return new HttpResponseDeenrichmentFilter() {
@Override
public HttpResponse filterResponse(HttpRequest request, HttpResponse response) {
try {
return filterResponse.performInContext(new FilterResponseContext(request, response));