default CompletableFuture<AggregatedHttpRequest> aggregate(EventExecutor executor) {
        requireNonNull(executor, "executor");
        return aggregate(AggregationOptions.builder()
                                           .executor(executor)
                                           .cacheResult(true)
                                           .build());
    }
Aggregates this request. The returned {@link CompletableFuture} will be notified when the content and
the trailers of the request is received fully.

<p>The {@link AggregatedHttpRequest} is cached by default. So you can repeatedly call this method and
get the cached value after the first aggregation.
<pre>{@code
HttpRequest request = ...;
AggregatedHttpRequest aggregated0 = request.aggregate(executor).join();
AggregatedHttpRequest aggregated1 = request.aggregate(executor).join();
assert aggregated0 == aggregated1;
}</pre>
core/src/main/java/com/linecorp/armeria/common/HttpRequest.java