Example usage for org.apache.http.client ResponseHandler handleResponse

List of usage examples for org.apache.http.client ResponseHandler handleResponse

Introduction

In this page you can find the example usage for org.apache.http.client ResponseHandler handleResponse.

Prototype

T handleResponse(HttpResponse response) throws ClientProtocolException, IOException;

Source Link

Document

Processes an HttpResponse and returns some value corresponding to that response.

Usage

From source file:org.vietspider.net.client.impl.AbstractHttpClient.java

public <T> T execute(final HttpHost target, final HttpRequest request,
        final ResponseHandler<? extends T> responseHandler, final HttpContext context)
        throws IOException, ClientProtocolException {
    if (responseHandler == null) {
        throw new IllegalArgumentException("Response handler must not be null.");
    }/*from   w ww  . j  a v a  2 s.  com*/

    HttpResponse response = execute(target, request, context);

    T result;
    try {
        result = responseHandler.handleResponse(response);
    } catch (Throwable t) {
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            try {
                entity.consumeContent();
            } catch (Throwable t2) {
                // Log this exception. The original exception is more
                // important and will be thrown to the caller.
                //        this.log.warn("Error consuming content after an exception.", t2);
            }
        }

        if (t instanceof Error) {
            throw (Error) t;
        }

        if (t instanceof RuntimeException) {
            throw (RuntimeException) t;
        }

        if (t instanceof IOException) {
            throw (IOException) t;
        }

        throw new UndeclaredThrowableException(t);
    }

    // Handling the response was successful. Ensure that the content has
    // been fully consumed.
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        // Let this exception go to the caller.
        entity.consumeContent();
    }

    return result;
}

From source file:com.canoo.dolphin.client.impl.TestDolphinPlatformHttpClientConnector.java

@Test(expectedExceptions = DolphinRemotingException.class)
public void testBadResponse() {
    final CountDownLatch httpWasCalled = new CountDownLatch(1);

    HttpClient httpClient = new DefaultHttpClient() {

        @Override/* ww w. j a  v a 2  s . c o m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<? extends T> responseHandler)
                throws IOException, ClientProtocolException {
            StatusLine statusLine = new StatusLine() {
                @Override
                public ProtocolVersion getProtocolVersion() {
                    return new ProtocolVersion("Dummy-Protocol", 1, 1);
                }

                @Override
                public int getStatusCode() {
                    return 500;
                }

                @Override
                public String getReasonPhrase() {
                    return "Internal Server Error";
                }
            };
            StringEntity entity = new StringEntity("failed");
            HttpResponse response = new BasicHttpResponse(statusLine);
            response.setEntity(entity);
            responseHandler.handleResponse(response);
            httpWasCalled.countDown();
            return (T) "[]";
        }
    };
    DolphinPlatformHttpClientConnector connector = new DolphinPlatformHttpClientConnector(new ClientDolphin(),
            new JsonCodec(), httpClient, getDummyURL(), new ForwardableCallback<>(),
            new DummyUiThreadHandler());

    connector.transmit(Collections.singletonList(new Command()));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listAllBackupsShouldReturnCorrectResultIfNoServerFound() throws CloudException, InternalException {

    final CloseableHttpResponse listServersResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourcesModel>(new ServerServiceResourcesModel()),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/*from   w  w  w. j  ava 2s .  c o m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SERVERS, ACCOUNT_NO));
            return responseHandler.handleResponse(listServersResponseMock);
        }
    };

    assertReflectionEquals(Arrays.asList(), new AzureSqlDatabaseSupport(azureMock).listBackups(null));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void getDatabaseShouldReturnCorrectResultIfNoServerFound() throws CloudException, InternalException {

    final CloseableHttpResponse responseMock = getHttpResponseMock(getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServersModel>(new ServersModel()), new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/* w  ww. j a  v  a 2  s .  com*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SERVERS_NONGEN, ACCOUNT_NO));
            return responseHandler.handleResponse(responseMock);
        }
    };

    assertNull("database found for invalid server",
            new AzureSqlDatabaseSupport(azureMock).getDatabase(SERVER_ID + ":" + DATABASE_ID));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listDatabasesShouldReturnCorrectResultIfNoServerFound()
        throws AssertionFailedError, CloudException, InternalException {

    final CloseableHttpResponse listServerNonGenResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServersModel>(new ServersModel()), new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/*from  w  ww .  j  av  a2s  .  c o  m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SERVERS_NONGEN, ACCOUNT_NO));
            return responseHandler.handleResponse(listServerNonGenResponseMock);
        }
    };

    assertReflectionEquals("match fields for databases failed", Arrays.asList(),
            new AzureSqlDatabaseSupport(azureMock).listDatabases());
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listAccessShouldReturnCorrectResultIfNoFirewallRulesFound()
        throws CloudException, InternalException {

    final CloseableHttpResponse listFirewallRulesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourcesModel>(new ServerServiceResourcesModel()),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)//  w  ww.  j  a v a2 s. c om
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SERVER_FIREWALL, ACCOUNT_NO, SERVER_ID));
            return responseHandler.handleResponse(listFirewallRulesResponseMock);
        }
    };

    Database database = createDatabase(SERVER_ID, DATABASE_ID, 10, new Date().getTime(), "Basic", REGION);
    assertReflectionEquals("match fields of access for database failed", new ArrayList<String>(),
            new AzureRelationalDatabaseSupport(azureMock, database).listAccess(DATABASE_ID));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listAccessShouldReturnCorrectResult() throws CloudException, InternalException {

    ServerServiceResourcesModel serverServiceResourcesModel = new ServerServiceResourcesModel();
    serverServiceResourcesModel.setServerServiceResourcesModels(Arrays
            .asList(createServerServiceResourceModel("TESTFIREWALLRULE", "202.100.10.10", "202.100.10.100")));

    final CloseableHttpResponse listFirewallRulesResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourcesModel>(serverServiceResourcesModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/*from   w w  w.  j a  va 2s. co m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SERVER_FIREWALL, ACCOUNT_NO, SERVER_ID));
            return responseHandler.handleResponse(listFirewallRulesResponseMock);
        }
    };

    Database database = createDatabase(SERVER_ID, DATABASE_ID, 10, new Date().getTime(), "Basic", REGION);
    assertReflectionEquals("match fields of access for database failed",
            Arrays.asList(String.format("%s::%s::%s", "TESTFIREWALLRULE", "202.100.10.10", "202.100.10.100")),
            new AzureRelationalDatabaseSupport(azureMock, database).listAccess(DATABASE_ID));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void listDatabaseProductsShouldReturnCorrectResult() throws CloudException, InternalException {

    ServerServiceResourceModel serverServiceResourceModel = new ServerServiceResourceModel();
    ServerServiceResourceModel.Version versionModel = new ServerServiceResourceModel.Version();
    versionModel.setName("2.0");
    ServerServiceResourceModel.Edition editionModel = new ServerServiceResourceModel.Edition();
    editionModel.setName("Basic");
    ServerServiceResourceModel.ServiceLevelObjective serviceLevelObjectiveModel = new ServerServiceResourceModel.ServiceLevelObjective();
    serviceLevelObjectiveModel.setName("10GB");
    serviceLevelObjectiveModel.setId("ServiceLevelObjectiveModelID");
    editionModel.setServiceLevelObjectives(Arrays.asList(serviceLevelObjectiveModel));
    versionModel.setEditions(Arrays.asList(editionModel));
    serverServiceResourceModel.setVersions(Arrays.asList(versionModel));
    serverServiceResourceModel.setName(SERVER_ID);

    final CloseableHttpResponse getDatabaseResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK),
            new DaseinObjectToXmlEntity<ServerServiceResourceModel>(serverServiceResourceModel),
            new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)//from w w  w.  j  a v a  2s. c  o m
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertGet(request, String.format(RESOURCE_SUBSCRIPTION_META, ACCOUNT_NO));
            return responseHandler.handleResponse(getDatabaseResponseMock);
        }
    };

    ArrayList<DatabaseProduct> expectedDatabaseProducts = new ArrayList<DatabaseProduct>();

    DatabaseProduct expectedDatabaseProduct = new DatabaseProduct(serviceLevelObjectiveModel.getName(),
            editionModel.getName());
    expectedDatabaseProduct.setEngine(DatabaseEngine.SQLSERVER_EE);
    expectedDatabaseProduct.setLicenseModel(DatabaseLicenseModel.LICENSE_INCLUDED);
    expectedDatabaseProducts.add(expectedDatabaseProduct);

    assertReflectionEquals("match fields failed", expectedDatabaseProducts,
            new AzureSqlDatabaseSupport(azureMock).listDatabaseProducts(DatabaseEngine.SQLSERVER_EE));
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void createFromBackupShouldPostWithCorrectRequest() throws CloudException, InternalException {

    DatabaseBackup databaseBackup = this.createDatabaseBackup(DATABASE_ID + "BACKUP", DATABASE_ID + "BACKUP");

    final CloseableHttpResponse createDatabaseResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/*from  ww  w.  jav  a2 s.c  o m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertPost(request, String.format(RESOURCE_RESTORE_DATABASE_OPERATIONS, ACCOUNT_NO, SERVER_ID));
            return responseHandler.handleResponse(createDatabaseResponseMock);
        }
    };

    new AzureSqlDatabaseSupport(azureMock).createFromBackup(databaseBackup, DATABASE_ID);
}

From source file:org.dasein.cloud.azure.tests.platform.AzureRelationalDatabaseTest.java

@Test
public void revokeAccessShouldDeleteWithCorrectRequest() throws CloudException, InternalException {

    final String ruleName = "TESTFIREWALLRULE";
    final String startIpAddress = "202.100.10.10";
    final String endIpAddress = "202.100.10.100";

    final CloseableHttpResponse deleteResponseMock = getHttpResponseMock(
            getStatusLineMock(HttpServletResponse.SC_OK), null, new Header[] {});

    new MockUp<CloseableHttpClient>() {
        @Mock(invocations = 1)/*from w  w  w  .j  a v  a2 s  .  co  m*/
        public <T> T execute(HttpUriRequest request, ResponseHandler<T> responseHandler) throws IOException {
            assertDelete(request, String.format(RESOURCE_FIREWALL_RULE, ACCOUNT_NO, SERVER_ID, ruleName));
            return responseHandler.handleResponse(deleteResponseMock);
        }
    };

    Database database = createDatabase(SERVER_ID, DATABASE_ID, 10, new Date().getTime(), "Basic", REGION);
    new AzureRelationalDatabaseSupport(azureMock, database).revokeAccess(
            String.format("%s:%s", SERVER_ID, DATABASE_ID),
            String.format("%s::%s::%s", ruleName, startIpAddress, endIpAddress));
}