Java 类org.apache.http.concurrent.Cancellable 实例源码

项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
@Override
@Deprecated
public void setReleaseTrigger(final ConnectionReleaseTrigger releaseTrigger) {
    setCancellable(new Cancellable() {

        @Override
        public boolean cancel() {
            try {
                releaseTrigger.abortConnection();
                return true;
            } catch (final IOException ex) {
                return false;
            }
        }

    });
}
项目:purecloud-iot    文件:TestMainClientExec.java   
@Test(expected=RequestAbortedException.class)
public void testExecAbortedPriorToConnectionSetup() throws Exception {
    final HttpRoute route = new HttpRoute(target);
    final HttpClientContext context = new HttpClientContext();
    final HttpRequestWrapper request = HttpRequestWrapper.wrap(new HttpGet("http://bar/test"));

    Mockito.when(managedConn.isOpen()).thenReturn(Boolean.FALSE);
    Mockito.when(execAware.isAborted()).thenReturn(Boolean.FALSE, Boolean.TRUE);
    try {
        mainClientExec.execute(route, request, context, execAware);
    } catch (final IOException ex) {
        Mockito.verify(connRequest, Mockito.times(1)).get(0, TimeUnit.MILLISECONDS);
        Mockito.verify(execAware, Mockito.times(2)).setCancellable(Mockito.<Cancellable>any());
        Mockito.verify(connManager, Mockito.never()).connect(
                Mockito.same(managedConn),
                Mockito.<HttpRoute>any(),
                Mockito.anyInt(),
                Mockito.<HttpContext>any());
        throw ex;
    }
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setConnectionRequest(final ClientConnectionRequest connRequest) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            connRequest.abortRequest();
            return true;
        }

    });
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setReleaseTrigger(final ConnectionReleaseTrigger releaseTrigger) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            try {
                releaseTrigger.abortConnection();
                return true;
            } catch (final IOException ex) {
                return false;
            }
        }

    });
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
public void abort() {
    if (this.aborted.compareAndSet(false, true)) {
        final Cancellable cancellable = this.cancellableRef.getAndSet(null);
        if (cancellable != null) {
            cancellable.cancel();
        }
    }
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
/**
 * Resets internal state of the request making it reusable.
 *
 * @since 4.2
 */
public void reset() {
    final Cancellable cancellable = this.cancellableRef.getAndSet(null);
    if (cancellable != null) {
        cancellable.cancel();
    }
    this.aborted.set(false);
}
项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
@Override
@Deprecated
public void setConnectionRequest(final ClientConnectionRequest connRequest) {
    setCancellable(new Cancellable() {

        @Override
        public boolean cancel() {
            connRequest.abortRequest();
            return true;
        }

    });
}
项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
@Override
public void abort() {
    if (this.aborted.compareAndSet(false, true)) {
        final Cancellable cancellable = this.cancellableRef.getAndSet(null);
        if (cancellable != null) {
            cancellable.cancel();
        }
    }
}
项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
/**
 * @since 4.2
 */
@Override
public void setCancellable(final Cancellable cancellable) {
    if (!this.aborted.get()) {
        this.cancellableRef.set(cancellable);
    }
}
项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
/**
 * Resets internal state of the request making it reusable.
 *
 * @since 4.2
 */
public void reset() {
    final Cancellable cancellable = this.cancellableRef.getAndSet(null);
    if (cancellable != null) {
        cancellable.cancel();
    }
    this.aborted.set(false);
}
项目:purecloud-iot    文件:TestMainClientExec.java   
@Test
public void testExecRequestNonPersistentConnection() throws Exception {
    final HttpRoute route = new HttpRoute(target);
    final HttpClientContext context = new HttpClientContext();
    final RequestConfig config = RequestConfig.custom()
            .setConnectTimeout(123)
            .setSocketTimeout(234)
            .setConnectionRequestTimeout(345)
            .build();
    context.setRequestConfig(config);
    final HttpRequestWrapper request = HttpRequestWrapper.wrap(new HttpGet("http://bar/test"));
    final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
    Mockito.when(requestExecutor.execute(
            Mockito.same(request),
            Mockito.<HttpClientConnection>any(),
            Mockito.<HttpClientContext>any())).thenReturn(response);

    final CloseableHttpResponse finalResponse = mainClientExec.execute(
            route, request, context, execAware);
    Mockito.verify(connManager).requestConnection(route, null);
    Mockito.verify(connRequest).get(345, TimeUnit.MILLISECONDS);
    Mockito.verify(execAware, Mockito.times(1)).setCancellable(connRequest);
    Mockito.verify(execAware, Mockito.times(2)).setCancellable(Mockito.<Cancellable>any());
    Mockito.verify(connManager).connect(managedConn, route, 123, context);
    Mockito.verify(connManager).routeComplete(managedConn, route, context);
    Mockito.verify(managedConn).setSocketTimeout(234);
    Mockito.verify(requestExecutor, Mockito.times(1)).execute(request, managedConn, context);
    Mockito.verify(managedConn, Mockito.times(1)).close();
    Mockito.verify(connManager).releaseConnection(managedConn, null, 0, TimeUnit.MILLISECONDS);

    Assert.assertNotNull(context.getTargetAuthState());
    Assert.assertNotNull(context.getProxyAuthState());
    Assert.assertSame(managedConn, context.getConnection());
    Assert.assertNull(context.getUserToken());
    Assert.assertNotNull(finalResponse);
    Assert.assertTrue(finalResponse instanceof HttpResponseProxy);
}
项目:purecloud-iot    文件:TestMinimalClientExec.java   
@Test
public void testExecRequestNonPersistentConnection() throws Exception {
    final HttpRoute route = new HttpRoute(target);
    final HttpClientContext context = new HttpClientContext();
    final RequestConfig config = RequestConfig.custom()
            .setConnectTimeout(123)
            .setSocketTimeout(234)
            .setConnectionRequestTimeout(345)
            .build();
    context.setRequestConfig(config);
    final HttpRequestWrapper request = HttpRequestWrapper.wrap(new HttpGet("http://bar/test"));
    final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
    Mockito.when(requestExecutor.execute(
            Mockito.same(request),
            Mockito.<HttpClientConnection>any(),
            Mockito.<HttpClientContext>any())).thenReturn(response);

    final CloseableHttpResponse finalResponse = minimalClientExec.execute(
            route, request, context, execAware);
    Mockito.verify(connManager).requestConnection(route, null);
    Mockito.verify(connRequest).get(345, TimeUnit.MILLISECONDS);
    Mockito.verify(execAware, Mockito.times(1)).setCancellable(connRequest);
    Mockito.verify(execAware, Mockito.times(2)).setCancellable(Mockito.<Cancellable>any());
    Mockito.verify(connManager).connect(managedConn, route, 123, context);
    Mockito.verify(connManager).routeComplete(managedConn, route, context);
    Mockito.verify(managedConn).setSocketTimeout(234);
    Mockito.verify(requestExecutor, Mockito.times(1)).execute(request, managedConn, context);
    Mockito.verify(managedConn, Mockito.times(1)).close();
    Mockito.verify(connManager).releaseConnection(managedConn, null, 0, TimeUnit.MILLISECONDS);

    Assert.assertSame(managedConn, context.getConnection());
    Assert.assertNotNull(finalResponse);
    Assert.assertTrue(finalResponse instanceof HttpResponseProxy);
}
项目:purecloud-iot    文件:TestAbortHandling.java   
@Override
public void setCancellable(final Cancellable cancellable) {
    try {
        if(!releaseTriggerLatch.await(1, TimeUnit.SECONDS)) {
            throw new RuntimeException("Waited too long...");
        }
    } catch(final InterruptedException ie) {
        throw new RuntimeException(ie);
    }

    super.setCancellable(cancellable);
}
项目:purecloud-iot    文件:InternalHttpRequest.java   
InternalHttpRequest(final String method, final URI requestURI) {
    Args.notBlank(method, "Method");
    Args.notNull(requestURI, "Request URI");
    this.method = method;
    this.uri = requestURI;
    this.aborted = new AtomicBoolean(false);
    this.cancellableRef = new AtomicReference<Cancellable>(null);
}
项目:purecloud-iot    文件:InternalHttpRequest.java   
@Override
public void abort() throws UnsupportedOperationException {
    if (this.aborted.compareAndSet(false, true)) {
        final Cancellable cancellable = this.cancellableRef.getAndSet(null);
        if (cancellable != null) {
            cancellable.cancel();
        }
    }
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setConnectionRequest(final ClientConnectionRequest connRequest) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            connRequest.abortRequest();
            return true;
        }

    });
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setReleaseTrigger(final ConnectionReleaseTrigger releaseTrigger) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            try {
                releaseTrigger.abortConnection();
                return true;
            } catch (final IOException ex) {
                return false;
            }
        }

    });
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
public void abort() {
    if (this.aborted.compareAndSet(false, true)) {
        final Cancellable cancellable = this.cancellableRef.getAndSet(null);
        if (cancellable != null) {
            cancellable.cancel();
        }
    }
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
/**
 * Resets internal state of the request making it reusable.
 *
 * @since 4.2
 */
public void reset() {
    final Cancellable cancellable = this.cancellableRef.getAndSet(null);
    if (cancellable != null) {
        cancellable.cancel();
    }
    this.aborted.set(false);
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setConnectionRequest(final ClientConnectionRequest connRequest) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            connRequest.abortRequest();
            return true;
        }

    });
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
@Deprecated
public void setReleaseTrigger(final ConnectionReleaseTrigger releaseTrigger) {
    setCancellable(new Cancellable() {

        public boolean cancel() {
            try {
                releaseTrigger.abortConnection();
                return true;
            } catch (final IOException ex) {
                return false;
            }
        }

    });
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
public void abort() {
    if (this.aborted.compareAndSet(false, true)) {
        final Cancellable cancellable = this.cancellableRef.getAndSet(null);
        if (cancellable != null) {
            cancellable.cancel();
        }
    }
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
/**
 * Resets internal state of the request making it reusable.
 *
 * @since 4.2
 */
public void reset() {
    final Cancellable cancellable = this.cancellableRef.getAndSet(null);
    if (cancellable != null) {
        cancellable.cancel();
    }
    this.aborted.set(false);
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
protected AbstractExecutionAwareRequest() {
    super();
    this.aborted = new AtomicBoolean(false);
    this.cancellableRef = new AtomicReference<Cancellable>(null);
}
项目:remote-files-sync    文件:AbstractExecutionAwareRequest.java   
/**
 * @since 4.2
 */
public void setCancellable(final Cancellable cancellable) {
    if (!this.aborted.get()) {
        this.cancellableRef.set(cancellable);
    }
}
项目:purecloud-iot    文件:AbstractExecutionAwareRequest.java   
protected AbstractExecutionAwareRequest() {
    super();
    this.aborted = new AtomicBoolean(false);
    this.cancellableRef = new AtomicReference<Cancellable>(null);
}
项目:purecloud-iot    文件:InternalHttpRequest.java   
@Override
public void setCancellable(final Cancellable cancellable) {
    if (!this.aborted.get()) {
        this.cancellableRef.set(cancellable);
    }
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
protected AbstractExecutionAwareRequest() {
    super();
    this.aborted = new AtomicBoolean(false);
    this.cancellableRef = new AtomicReference<Cancellable>(null);
}
项目:Visit    文件:AbstractExecutionAwareRequest.java   
/**
 * @since 4.2
 */
public void setCancellable(final Cancellable cancellable) {
    if (!this.aborted.get()) {
        this.cancellableRef.set(cancellable);
    }
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
protected AbstractExecutionAwareRequest() {
    super();
    this.aborted = new AtomicBoolean(false);
    this.cancellableRef = new AtomicReference<Cancellable>(null);
}
项目:ZTLib    文件:AbstractExecutionAwareRequest.java   
/**
 * @since 4.2
 */
public void setCancellable(final Cancellable cancellable) {
    if (!this.aborted.get()) {
        this.cancellableRef.set(cancellable);
    }
}
项目:proxy-servlet    文件:AbstractProxyServlet.java   
@SuppressWarnings( "deprecation" )
@Override
protected void service( final HttpServletRequest servletRequest, final HttpServletResponse servletResponse )
  throws ServletException, IOException
{
  final String proxyRequestUri = rewriteUrlFromRequest( servletRequest );
  final HttpRequest proxyRequest = newProxyRequest( servletRequest, proxyRequestUri );

  copyRequestHeaders( servletRequest, proxyRequest );
  setXForwardedForHeader( servletRequest, proxyRequest );

  proxyPrepared( proxyRequest );

  try
  {
    final HttpResponse proxyResponse = _client.execute( URIUtils.extractHost( _targetUri ), proxyRequest );

    // Process the response
    final int statusCode = proxyResponse.getStatusLine().getStatusCode();

    if ( doResponseRedirectOrNotModifiedLogic( servletRequest, servletResponse, proxyResponse, statusCode ) )
    {
      //just to be sure, but is probably a no-op
      EntityUtils.consume( proxyResponse.getEntity() );
      return;
    }

    // Pass the response code. This method with the "reason phrase" is deprecated but it's the only way to pass the
    //  reason along too.
    servletResponse.setStatus( statusCode, proxyResponse.getStatusLine().getReasonPhrase() );

    copyResponseHeaders( proxyResponse, servletResponse );

    // Send the content to the client
    copyResponseEntity( proxyResponse, servletResponse );
  }
  catch ( final Exception e )
  {
    //abort request, according to best practice with HttpClient
    if ( proxyRequest instanceof Cancellable )
    {
      final Cancellable cancellable = (Cancellable) proxyRequest;
      cancellable.cancel();
    }
    handleError( e );
  }
}
项目:remote-files-sync    文件:HttpExecutionAware.java   
/**
 * Sets {@link Cancellable} for the ongoing operation.
 */
void setCancellable(Cancellable cancellable);
项目:purecloud-iot    文件:HttpExecutionAware.java   
/**
 * Sets {@link Cancellable} for the ongoing operation.
 */
void setCancellable(Cancellable cancellable);
项目:Visit    文件:HttpExecutionAware.java   
/**
 * Sets {@link Cancellable} for the ongoing operation.
 */
void setCancellable(Cancellable cancellable);
项目:ZTLib    文件:HttpExecutionAware.java   
/**
 * Sets {@link Cancellable} for the ongoing operation.
 */
void setCancellable(Cancellable cancellable);