use of com.predic8.membrane.core.transport.http.HttpClient in project service-proxy by membrane.
the class HelpLinkExistenceTest method doit.
@Test
public void doit() throws Exception {
Set<Class<?>> classes = getElementClasses();
Assert.assertNotEquals(0, classes.size());
HttpClient hc = new HttpClient();
for (Class<?> clazz : classes) {
if (Interceptor.class.isAssignableFrom(clazz)) {
Interceptor i = (Interceptor) clazz.newInstance();
String helpId = i.getHelpId();
String url = "http://membrane-soa.org/service-proxy-doc/" + getVersion() + "/configuration/reference/" + helpId + ".htm";
Response r = hc.call(new Request.Builder().get(url).buildExchange()).getResponse();
try {
Assert.assertEquals(200, r.getStatusCode());
} catch (Throwable e) {
throw new RuntimeException(url, e);
}
}
}
}
use of com.predic8.membrane.core.transport.http.HttpClient in project service-proxy by membrane.
the class LoadBalancingInterceptorTest method testRoundRobinDispachingStrategy.
@Test
public void testRoundRobinDispachingStrategy() throws Exception {
balancingInterceptor.setDispatchingStrategy(roundRobinStrategy);
HttpClient client = new HttpClient();
client.getParams().setParameter(HttpProtocolParams.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
PostMethod vari = getPostMethod();
int status = client.executeMethod(vari);
// System.out.println(new String(vari.getResponseBody()));
assertEquals(200, status);
assertEquals(1, mockInterceptor1.getCount());
assertEquals(0, mockInterceptor2.getCount());
assertEquals(200, client.executeMethod(getPostMethod()));
assertEquals(1, mockInterceptor1.getCount());
assertEquals(1, mockInterceptor2.getCount());
assertEquals(200, client.executeMethod(getPostMethod()));
assertEquals(2, mockInterceptor1.getCount());
assertEquals(1, mockInterceptor2.getCount());
assertEquals(200, client.executeMethod(getPostMethod()));
assertEquals(2, mockInterceptor1.getCount());
assertEquals(2, mockInterceptor2.getCount());
}
use of com.predic8.membrane.core.transport.http.HttpClient in project service-proxy by membrane.
the class HttpKeepAliveTest method testConnectionClose.
@Test
public void testConnectionClose() throws Exception {
HttpClient client = createHttpClient(500);
sp1.getInterceptors().add(0, new AbstractInterceptor() {
@Override
public Outcome handleResponse(Exchange exc) throws Exception {
exc.getResponse().getHeader().add(Header.KEEP_ALIVE, "max=2");
return Outcome.CONTINUE;
}
});
// opens connection 1
assertEquals(200, issueRequest(client));
assertEquals(1, set.size());
assertEquals(1, client.getConnectionManager().getNumberInPool());
// connection closer did not yet run
Thread.sleep(600);
// connection 1 is now dead, but still in pool
assertEquals(1, client.getConnectionManager().getNumberInPool());
// opens connection 2
assertEquals(200, issueRequest(client));
assertEquals(2, set.size());
// connection closer runs and closes both
Thread.sleep(600);
assertEquals(0, client.getConnectionManager().getNumberInPool());
}
use of com.predic8.membrane.core.transport.http.HttpClient in project service-proxy by membrane.
the class HttpKeepAliveTest method issueRequest.
private int issueRequest(HttpClient client) throws IOException, Exception {
Exchange exchange = createExchange();
Response response = client.call(exchange).getResponse();
response.readBody();
return response.getStatusCode();
}
use of com.predic8.membrane.core.transport.http.HttpClient in project service-proxy by membrane.
the class HttpKeepAliveTest method testTimeoutDefault.
@Test
public void testTimeoutDefault() throws Exception {
HttpClient client = createHttpClient(1000);
sp1.getInterceptors().add(0, new AbstractInterceptor() {
@Override
public Outcome handleResponse(Exchange exc) throws Exception {
exc.getResponse().getHeader().add(Header.KEEP_ALIVE, "max=2");
return Outcome.CONTINUE;
}
});
assertEquals(200, issueRequest(client));
assertEquals(1, set.size());
Thread.sleep(1500);
assertEquals(200, issueRequest(client));
assertEquals(2, set.size());
}
Aggregations