You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Siqi Li (Jira)" <ji...@apache.org> on 2020/03/05 23:04:00 UTC
[jira] [Updated] (HTTPCLIENT-2057) [5.0] Potential cleanup for
CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext,
FutureCallback)
[ https://issues.apache.org/jira/browse/HTTPCLIENT-2057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Siqi Li updated HTTPCLIENT-2057:
--------------------------------
Description:
The source code for CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext, FutureCallback) looks like this:
{code:java}
public final Future<SimpleHttpResponse> execute(
final SimpleHttpRequest request,
final HttpContext context,
final FutureCallback<SimpleHttpResponse> callback) {
Args.notNull(request, "Request");
final BasicFuture<SimpleHttpResponse> future = new BasicFuture<>(callback);
execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, new FutureCallback<SimpleHttpResponse>() {
@Override
public void completed(final SimpleHttpResponse response) {
future.completed(response);
}
@Override
public void failed(final Exception ex) {
future.failed(ex);
}
@Override
public void cancelled() {
future.cancel(true);
}
});
return future;
}{code}
To me this looks more complicated than it needs to be. I think it can be replaced with just:
{code:java}
public final Future<SimpleHttpResponse> execute(
final SimpleHttpRequest request,
final HttpContext context,
final FutureCallback<SimpleHttpResponse> callback) {
Args.notNull(request, "Request");
return execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, callback);
}
{code}
was:
The source code for CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext, FutureCallback) looks like this:
{code:java}
public final Future<SimpleHttpResponse> execute(
final SimpleHttpRequest request,
final HttpContext context,
final FutureCallback<SimpleHttpResponse> callback) {
Args.notNull(request, "Request");
final BasicFuture<SimpleHttpResponse> future = new BasicFuture<>(callback);
execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, new FutureCallback<SimpleHttpResponse>() { @Override
public void completed(final SimpleHttpResponse response) {
future.completed(response);
} @Override
public void failed(final Exception ex) {
future.failed(ex);
} @Override
public void cancelled() {
future.cancel(true);
} });
return future;
}{code}
To me this looks more complicated than it needs to be. I think it can be replaced with just:
{code:java}
public final Future<SimpleHttpResponse> execute(
final SimpleHttpRequest request,
final HttpContext context,
final FutureCallback<SimpleHttpResponse> callback) {
Args.notNull(request, "Request");
return execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, callback);
}
{code}
> [5.0] Potential cleanup for CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext, FutureCallback)
> ------------------------------------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-2057
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2057
> Project: HttpComponents HttpClient
> Issue Type: Improvement
> Components: HttpClient (async)
> Affects Versions: 5.0
> Reporter: Siqi Li
> Priority: Trivial
>
> The source code for CloseableHttpAsyncClient#execute(SimpleHttpRequest, HttpContext, FutureCallback) looks like this:
> {code:java}
> public final Future<SimpleHttpResponse> execute(
> final SimpleHttpRequest request,
> final HttpContext context,
> final FutureCallback<SimpleHttpResponse> callback) {
> Args.notNull(request, "Request");
> final BasicFuture<SimpleHttpResponse> future = new BasicFuture<>(callback);
> execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, new FutureCallback<SimpleHttpResponse>() {
> @Override
> public void completed(final SimpleHttpResponse response) {
> future.completed(response);
> }
> @Override
> public void failed(final Exception ex) {
> future.failed(ex);
> }
> @Override
> public void cancelled() {
> future.cancel(true);
> }
> });
> return future;
> }{code}
> To me this looks more complicated than it needs to be. I think it can be replaced with just:
> {code:java}
> public final Future<SimpleHttpResponse> execute(
> final SimpleHttpRequest request,
> final HttpContext context,
> final FutureCallback<SimpleHttpResponse> callback) {
> Args.notNull(request, "Request");
> return execute(SimpleRequestProducer.create(request), SimpleResponseConsumer.create(), context, callback);
> }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org