in callouts/java/service-callout/src/main/java/service/ServiceCalloutTools.java [58:97]
public static void addHeaderMutations(
HeadersResponse.Builder headersResponseBuilder,
Iterable<Map.Entry<String, String>> addHeaders,
Iterable<String> removeHeaders,
Boolean clearRouteCache,
HeaderValueOption.HeaderAppendAction appendAction) {
// Access or initialize HeaderMutation
HeaderMutation.Builder headerMutationBuilder =
headersResponseBuilder.getResponseBuilder().getHeaderMutationBuilder();
// Handle adding headers
if (addHeaders != null) {
for (Map.Entry<String, String> entry : addHeaders) {
HeaderValueOption.Builder headerValueOptionBuilder = HeaderValueOption.newBuilder()
.setHeader(HeaderValue.newBuilder()
.setKey(entry.getKey())
.setRawValue(ByteString.copyFromUtf8(entry.getValue()))
);
// Apply append action if present
if (appendAction != null) {
headerValueOptionBuilder.setAppendAction(appendAction);
}
// Add header mutation
headerMutationBuilder.addSetHeaders(headerValueOptionBuilder.build());
}
}
// Handle removing headers
if (removeHeaders != null) {
headerMutationBuilder.addAllRemoveHeaders(removeHeaders);
}
// Clear route cache if required
if (Boolean.TRUE.equals(clearRouteCache)) {
headersResponseBuilder.getResponseBuilder().setClearRouteCache(true);
}
}