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