@Deprecated
    default CompletableFuture<AggregatedHttpResponse> aggregateWithPooledObjects(
            EventExecutor executor, ByteBufAllocator alloc) {
        requireNonNull(executor, "executor");
        requireNonNull(alloc, "alloc");
        return aggregate(AggregationOptions.builder()
                                           .executor(executor)
                                           .usePooledObjects(alloc)
                                           .build());
    }
Aggregates this response. The returned {@link CompletableFuture} will be notified when the content and
the trailers of the response is received fully. {@link AggregatedHttpResponse#content()} will
return a pooled object, and the caller must ensure to release it. If you don't know what this means,
use {@link #aggregate()}.

<p>The pooled {@link AggregatedHttpResponse} is not cached. So it is NOT allowed to access the
{@link AggregatedHttpResponse} from this method after the first aggregation.
<pre>{@code
HttpResponse response = ...;
AggregatedHttpResponse aggregated = response.aggregateWithPooledObjects(executor, alloc).join();
// An `IllegalStateException` will be raised.
response.aggregateWithPooledObjects(executor, alloc).join();
}</pre>

@deprecated Use {@link #aggregate(AggregationOptions)} with
            {@link AggregationOptions#usePooledObjects(ByteBufAllocator)}.
core/src/main/java/com/linecorp/armeria/common/HttpResponse.java