001 002package io.vrap.rmf.base.client.http; 003 004import java.util.concurrent.CompletableFuture; 005import java.util.function.Function; 006 007import io.vrap.rmf.base.client.ApiHttpHeaders; 008import io.vrap.rmf.base.client.ApiHttpRequest; 009import io.vrap.rmf.base.client.ApiHttpResponse; 010 011/** 012 * Middleware to add a user agent string as header to a request 013 */ 014public class UserAgentMiddleware implements Middleware { 015 private final String userAgent; 016 017 public UserAgentMiddleware(final String userAgent) { 018 this.userAgent = userAgent; 019 } 020 021 @Override 022 public CompletableFuture<ApiHttpResponse<byte[]>> invoke(final ApiHttpRequest request, 023 final Function<ApiHttpRequest, CompletableFuture<ApiHttpResponse<byte[]>>> next) { 024 return next.apply(request.withHeader(ApiHttpHeaders.USER_AGENT, userAgent)); 025 } 026}