Java Examples for com.ning.http.client.AsyncHttpClient
The following java examples will help you to understand the usage of com.ning.http.client.AsyncHttpClient. These source code samples are taken from different open source projects.
Example 1
Project: osgi-maven-master File: ConnectionExample.java View source code |
public static void main(final String[] args) throws Exception { final AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); asyncHttpClient.prepareGet("https://www.google.co.nz/").execute(new AsyncCompletionHandler<Response>() { @Override public Response onCompleted(final Response response) throws Exception { // System.out.println(response.getResponseBody()); return response; } }); }
Example 2
Project: vnluser-master File: AsyncHttpClientUtil.java View source code |
public static String asyncHttpGet(String url) { String body = ""; try { AsyncHttpClientConfig cf = new AsyncHttpClientConfig.Builder().setFollowRedirects(true).setAllowPoolingConnection(true).setUserAgent(userAgent).build(); AsyncHttpClient asyncHttpClient = new AsyncHttpClient(cf); Future<Response> f = asyncHttpClient.prepareGet(url).execute(); Response r = f.get(); body = (r.getResponseBody()); asyncHttpClient.close(); } catch (Exception e) { } return body; }
Example 3
Project: writelatex-git-bridge-master File: WLGitBridgeIntegrationTest.java View source code |
@Test public void canServePushedFiles() throws IOException, ExecutionException, InterruptedException { // // I don't think we can test this completely without some changes to the mock server, because we have no way // of pausing the test while the push is in progress. Once the push is over, the file isn't actually there for // us to fetch any more. We can however test the access and error conditions, which comprise most of the logic. // int gitBridgePort = 33873; int mockServerPort = 3873; MockSnapshotServer server = new MockSnapshotServer(mockServerPort, getResource("/canServePushedFiles").toFile()); server.start(); server.setState(states.get("canServePushedFiles").get("state")); GitBridgeApp wlgb = new GitBridgeApp(new String[] { makeConfigFile(gitBridgePort, mockServerPort) }); wlgb.run(); File dir = folder.newFolder(); File testprojDir = cloneRepository("testproj", gitBridgePort, dir); assertTrue(FileUtil.gitDirectoriesAreEqual(getResource("/canServePushedFiles/state/testproj"), testprojDir.toPath())); runtime.exec("touch push.tex", null, testprojDir).waitFor(); runtime.exec("git add -A", null, testprojDir).waitFor(); runtime.exec("git commit -m \"push\"", null, testprojDir).waitFor(); Process gitPush = runtime.exec("git push", null, testprojDir); int pushExitCode = gitPush.waitFor(); assertEquals(0, pushExitCode); // With no key, we should get a 404. String url = "http://127.0.0.1:" + gitBridgePort + "/api/testproj/push.tex"; Response response = new AsyncHttpClient().prepareGet(url).execute().get(); assertEquals(404, response.getStatusCode()); // With an invalid project and no key, we should get a 404. url = "http://127.0.0.1:" + gitBridgePort + "/api/notavalidproject/push.tex"; response = new AsyncHttpClient().prepareGet(url).execute().get(); assertEquals(404, response.getStatusCode()); // With a bad key for a valid project, we should get a 404. url = "http://127.0.0.1:" + gitBridgePort + "/api/testproj/push.tex?key=notavalidkey"; response = new AsyncHttpClient().prepareGet(url).execute().get(); assertEquals(404, response.getStatusCode()); // With a bad key for an invalid project, we should get a 404. url = "http://127.0.0.1:" + gitBridgePort + "/api/notavalidproject/push.tex?key=notavalidkey"; response = new AsyncHttpClient().prepareGet(url).execute().get(); assertEquals(404, response.getStatusCode()); wlgb.stop(); }
Example 4
Project: AsyncHttpClient-Test-Suite-master File: CertAuthTest.java View source code |
@Test(groups = "standalone")
public void testCertAuth() throws Exception {
AsyncHttpClientConfig cfg = super.builder().setSSLContext(CertUtil.sslContext(keystorePath, keystorePass, alias)).build();
client = new AsyncHttpClient(cfg);
Response response = execute(client.prepareGet(url("content", "test")));
assertEquals(200, response.getStatusCode());
assertEquals("test", response.getResponseBody());
}
Example 5
Project: glowroot-master File: BasicSmokeIT.java View source code |
@BeforeClass public static void setUp() throws Exception { AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); Request request = asyncHttpClient.prepareGet("http://localhost:" + getUiPort() + "/backend/config/transaction?agent-id=" + agentId).build(); Response response = asyncHttpClient.executeRequest(request).get(); JsonNode responseNode = new ObjectMapper().readTree(response.getResponseBody()); String version = responseNode.get("version").asText(); request = asyncHttpClient.preparePost("http://localhost:" + getUiPort() + "/backend/config/transaction?agent-id=" + agentId).setBody("{\"slowThresholdMillis\":0,\"profilingIntervalMillis\":10," + "\"captureThreadStats\":false,\"version\":\"" + version + "\"}").build(); int statusCode = asyncHttpClient.executeRequest(request).get().getStatusCode(); if (statusCode != 200) { asyncHttpClient.close(); throw new AssertionError("Unexpected status code: " + statusCode); } for (int i = 0; i < 3; i++) { container.executeNoExpectedTrace(JdbcServlet.class); container.executeNoExpectedTrace(ErrorServlet.class); } // wait until above transactions are reported in UI Stopwatch stopwatch = Stopwatch.createStarted(); Set<String> transactionNames = Sets.newHashSet(); while (stopwatch.elapsed(SECONDS) < 30) { long from = System.currentTimeMillis() - HOURS.toMillis(2); long to = from + HOURS.toMillis(4); request = asyncHttpClient.prepareGet("http://localhost:" + getUiPort() + "/backend/transaction/summaries?agent-rollup-id=" + agentId + "&transaction-type=Web&from=" + from + "&to=" + to + "&sort-order=total-time&limit=10").build(); response = asyncHttpClient.executeRequest(request).get(); responseNode = new ObjectMapper().readTree(response.getResponseBody()); for (JsonNode transactionNode : responseNode.get("transactions")) { transactionNames.add(transactionNode.get("transactionName").asText()); } if (transactionNames.contains("/jdbcservlet") && transactionNames.contains("/errorservlet")) { break; } Thread.sleep(10); } asyncHttpClient.close(); if (!transactionNames.contains("/jdbcservlet") || !transactionNames.contains("/errorservlet")) { throw new AssertionError("Timed out waiting for /jdbcservlet and /errorservlet to both" + " show up in sidebar"); } Executors.newSingleThreadExecutor().submit(new Callable<Void>() { @Override public Void call() throws Exception { container.executeNoExpectedTrace(SleepServlet.class); return null; } }); }
Example 6
Project: lob-java-master File: AsyncLobClientTest.java View source code |
@Before
public void setUp() throws Exception {
final Constructor<AsyncLobClient> ctor = AsyncLobClient.class.getDeclaredConstructor(AsyncHttpClient.class, String.class);
ctor.setAccessible(true);
this.lobClient = ctor.newInstance(httpClient, baseUrl);
when(httpClient.prepareGet(anyString())).thenReturn(builder);
when(builder.setQueryParams(any(FluentStringsMap.class))).thenReturn(builder);
Lob.setApiVersion("lol");
AsyncLobClient.create("lol", new AsyncHttpClientConfig.Builder().build());
}
Example 7
Project: monitoring-master File: NingAsyncHttpClientPlugin.java View source code |
@Override
public void setup(ProfilerPluginSetupContext context) {
transformTemplate.transform("com.ning.http.client.AsyncHttpClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.ning.asynchttpclient.interceptor.ExecuteRequestInterceptor");
return target.toBytecode();
}
});
}
Example 8
Project: nexus-core-master File: MavenRepositoryReaderTest.java View source code |
@Before public void setUp() throws Exception { final AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); reader = new MavenRepositoryReader(asyncHttpClient); // Create a Jetty server with a handler that returns the content of the // given target (i.e. an emulated html, S3Repo, etc, file from the test // resources) Handler handler = new AbstractHandler() { public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException, ServletException { String path = target; if (path.endsWith("/") && StringUtils.isNotEmpty(request.getParameter("prefix"))) { String prefix = request.getParameter("prefix"); path = path + prefix.replaceAll("/", "-"); } else if (target.endsWith("/")) { // might need welcome pages later. path += "root"; } response.setStatus(HttpServletResponse.SC_OK); InputStream stream = this.getClass().getResourceAsStream(path); // we need to fall back to the file name that matches if (stream == null && path.endsWith("root")) { path = target; stream = this.getClass().getResourceAsStream(path); } if (stream == null) { System.out.println("Error handling: " + path); } StringBuilder result = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); String line = null; while ((line = reader.readLine()) != null) { result.append(line).append(System.getProperty("line.separator")); } response.getWriter().println(result.toString()); ((Request) request).setHandled(true); } }; // We choose an arbitrary server port server = new Server(0); // Assign the handler of incoming requests server.setHandler(handler); server.start(); // connect to the server in the tests for (Connector connector : server.getConnectors()) { nameOfConnector = connector.getName(); // We only need one connector name (and there should only be break; // one...) } }
Example 9
Project: pinpoint-master File: NingAsyncHttpClientPlugin.java View source code |
@Override
public void setup(ProfilerPluginSetupContext context) {
transformTemplate.transform("com.ning.http.client.AsyncHttpClient", new TransformCallback() {
@Override
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws InstrumentException {
InstrumentClass target = instrumentor.getInstrumentClass(loader, className, classfileBuffer);
target.addInterceptor("com.navercorp.pinpoint.plugin.ning.asynchttpclient.interceptor.ExecuteRequestInterceptor");
return target.toBytecode();
}
});
}
Example 10
Project: wasync-master File: BaseTest.java View source code |
public static final AsyncHttpClient createDefaultAsyncHttpClient(int requestTimeout) { NettyAsyncHttpProviderConfig nettyConfig = new NettyAsyncHttpProviderConfig(); nettyConfig.addProperty("child.tcpNoDelay", "true"); nettyConfig.addProperty("child.keepAlive", "true"); AsyncHttpClientConfig.Builder b = new AsyncHttpClientConfig.Builder(); b.setFollowRedirect(true).setMaxRequestRetry(-1).setConnectTimeout(-1).setReadTimeout(requestTimeout); AsyncHttpClientConfig config = b.setAsyncHttpClientProviderConfig(nettyConfig).build(); return new AsyncHttpClient(config); }
Example 11
Project: resthub-spring-stack-master File: OAuth2RequestFilter.java View source code |
/** * Retrieve the OAuth2.0 access token from the remote token endpoint * using pre-configured clientId/clientSecret. */ private OAuth2Token retrieveAccessToken(String username, String password) { AsyncHttpClient client = new AsyncHttpClient(); BoundRequestBuilder request = client.preparePost(this.accessTokenEndPoint); request.setHeader(Http.CONTENT_TYPE, Http.FORM); request.setHeader(Http.ACCEPT, Http.JSON); request.addParameter(GRANT_TYPE_PARAMETER_NAME, PASSWORD_PARAMETER_VALUE); request.addParameter(CLIENT_ID_PARAMETER_NAME, clientId); request.addParameter(CLIENT_SECRET_PARAMETER_NAME, clientSecret); request.addParameter(USERNAME_PARAMETER_NAME, username); request.addParameter(PASSWORD_PARAMETER_NAME, password); Response response; OAuth2Token token; try { response = request.execute().get(); token = JsonHelper.deserialize(response.getResponseBody("UTF-8"), OAuth2Token.class); acquireTime = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()); } catch (InterruptedException e) { throw new SerializationException(e); } catch (ExecutionException e) { throw new SerializationException(e); } catch (IOException e) { throw new SerializationException(e); } return token; }
Example 12
Project: Baragon-master File: BaragonServiceModule.java View source code |
@Provides @Singleton @Named(BARAGON_SERVICE_HTTP_CLIENT) public AsyncHttpClient providesHttpClient(HttpClientConfiguration config) { AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); builder.setMaxRequestRetry(config.getMaxRequestRetry()); builder.setRequestTimeoutInMs(config.getRequestTimeoutInMs()); builder.setFollowRedirects(true); builder.setConnectionTimeoutInMs(config.getConnectionTimeoutInMs()); builder.setUserAgent(config.getUserAgent()); return new AsyncHttpClient(builder.build()); }
Example 13
Project: client-api-master File: AsyncHttpClientTransport.java View source code |
private void executeRequest(AsyncHttpClient.BoundRequestBuilder requestBuilder, final TransportResponseHandler handler) throws IOException {
try {
conLock.acquire();
requestBuilder.execute(new AsyncCompletionHandler<Void>() {
@Override
public void onThrowable(Throwable t) {
conLock.release();
handler.onThrowable(t);
}
@Override
public Void onCompleted(Response response) throws Exception {
conLock.release();
handler.onResponse(response.getStatusCode(), response.getStatusText(), response.getResponseBodyAsStream());
return null;
}
});
} catch (InterruptedException e) {
handler.onThrowable(new RuntimeException("Interrupted acquiring connection lock"));
}
}
Example 14
Project: edison-microservice-master File: AsyncHttpRegistryClientTest.java View source code |
@Test
public void shouldDoNothingIfNotEnabled() throws Exception {
// given
addEnvironment(context, "edison.serviceregistry.enabled=false");
context.register(AsyncHttpClient.class);
context.register(ApplicationInfoConfiguration.class);
context.register(AsyncHttpRegistryClient.class);
context.refresh();
// when
RegistryClient bean = context.getBean(RegistryClient.class);
assertThat(bean.isRunning(), is(false));
}
Example 15
Project: Handy-URI-Templates-master File: AbstractExampleTest.java View source code |
/**
*
* @param request
* @throws InterruptedException
* @throws ExecutionException
* @throws TimeoutException
* @throws IOException
*/
protected void executeRequest(AsyncHttpClient client, Request request) throws InterruptedException, ExecutionException, TimeoutException, IOException {
final CountDownLatch l = new CountDownLatch(1);
client.executeRequest(request, new AsyncCompletionHandlerBase() {
@Override
public Response onCompleted(Response response) throws Exception {
Assert.assertEquals(200, response.getStatusCode());
//System.out.println(response.getResponseBody());
l.countDown();
return super.onCompleted(response);
}
}).get(3, TimeUnit.SECONDS);
if (!l.await(1000, TimeUnit.SECONDS)) {
Assert.fail("Timeout out");
}
client.close();
}
Example 16
Project: janbanery-master File: AsyncHttpClientRestClient.java View source code |
@Override
public RestClientResponse doPost(String url, KanbaneryResource resource) {
AsyncHttpClient.BoundRequestBuilder requestBuilder = asyncHttpClient.preparePost(url);
authorize(requestBuilder);
String requestBody = encodedBodyGenerator.asString(resource);
log.info("Generated request body is: '{}'", requestBody);
setFormUrlEncodedBody(requestBuilder, requestBody);
RestClientResponse response = execute(requestBuilder);
verifyResponseCode(response);
if (log.isDebugEnabled()) {
log.debug("Got response for creating resource: {}", response.getResponseBody());
}
return response;
}
Example 17
Project: kevoree-master File: WebSocketClient.java View source code |
public static void push(String ip, String port, final ContainerRoot model) throws IOException, ExecutionException, InterruptedException { AsyncHttpClientConfig cf = new AsyncHttpClientConfig.Builder().build(); final AsyncHttpClient c = new AsyncHttpClient(cf); WebSocket websocket = c.prepareGet("ws://" + ip + ":" + port).execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new WebSocketTextListener() { @Override public void onMessage(String message) { } @Override public void onFragment(String s, boolean b) { } @Override public void onOpen(WebSocket websocket) { Protocol.PushMessage pushMessage = new Protocol.PushMessage(saver.serialize(model)); websocket.sendTextMessage(pushMessage.toRaw()); //websocket.sendTextMessage(saver.serialize(model)); } @Override public void onClose(WebSocket websocket) { } @Override public void onError(Throwable t) { } }).build()).get(); }
Example 18
Project: RestSimple-master File: AddressBookSitebricksTest.java View source code |
@Test(timeOut = 20000) public void testPut() throws Throwable { logger.info("running test: testPut"); AsyncHttpClient c = new AsyncHttpClient(); Response r = c.preparePut(targetUrl + "/createAddressBook/myBook").addHeader("Accept", acceptHeader).setBody("{\"entries\":\"foo - bar - \"}").execute().get(); assertNotNull(r); assertEquals(r.getStatusCode(), 201); c.close(); }
Example 19
Project: twitter-tools-master File: FetchStatusTest.java View source code |
@Test public void basicHTML() throws Exception { String url = AsyncEmbeddedJsonStatusBlockCrawler.getUrl(1121915133L, "jkrums"); AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); AsyncHttpClient.BoundRequestBuilder request = asyncHttpClient.prepareGet(url); Future<Response> f = request.execute(); Response response = f.get(); // Make sure status is OK. String html = response.getResponseBody("UTF-8"); assertTrue(html != null); }
Example 20
Project: zodiark-master File: AHCBlockingRestClient.java View source code |
@PostConstruct
public void initAHC() throws MalformedURLException {
AsyncHttpClientConfig.Builder b = new AsyncHttpClientConfig.Builder();
b.setFollowRedirects(true).setIdleConnectionTimeoutInMs(-1).setRequestTimeoutInMs(-1).setUserAgent("Zodiark/1.1");
NettyAsyncHttpProviderConfig nettyConfig = new NettyAsyncHttpProviderConfig();
nettyConfig.addProperty("child.tcpNoDelay", "true");
nettyConfig.addProperty("child.keepAlive", "true");
dbLocation = dbTarget.toURL().toString();
if (dbLocation.endsWith("/")) {
dbLocation.substring(0, dbLocation.length() - 1);
}
client = new AsyncHttpClient(b.setAsyncHttpClientProviderConfig(nettyConfig).build());
logger.debug("AHC Client ready", client);
}
Example 21
Project: eventtracker-master File: ThreadSafeAsyncHttpClient.java View source code |
Request createPostRequest(final File file) {
AsyncHttpClient.BoundRequestBuilder requestBuilder = client.preparePost(collectorURI).setBody(file).setHeader("Content-Type", // zero-bytes-copy
headers.get(eventType));
/*
* Need to ensure we won't be using a single connection indefinitely,
* to ensure load balancing works.
*/
if (httpConnectionExpiration.isExpired()) {
requestBuilder = requestBuilder.setHeader("Connection", "close");
}
return requestBuilder.build();
}
Example 22
Project: fixd-master File: TestServerFixture.java View source code |
@Test public void testSimpleGet() throws Exception { server.handle(Method.GET, "/").with(200, "text/plain", "Hello"); /* * we're using the ning.com AsyncHttpClient, check it out: * https://github.com/AsyncHttpClient/async-http-client */ Response resp = new AsyncHttpClient().prepareGet("http://localhost:8080/").execute().get(); assertEquals("Hello", resp.getResponseBody().trim()); }
Example 23
Project: ning-service-skeleton-master File: HttpProxyServlet.java View source code |
@Override public void init(final ServletConfig config) throws ServletException { this.config = config; // Don't limit the number of connections per host // See https://github.com/ning/async-http-client/issues/issue/28 final AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); builder.setMaximumConnectionsPerHost(-1); builder.setAllowPoolingConnection(true); builder.setExecutorService(Executors.newCachedThreadPool("HttpProxyServlet-AsyncHttpClient")); builder.setUserAgent("ning-service/1.0"); client = new AsyncHttpClient(builder.build()); config.getServletContext().log("Created new HttpProxyServlet"); }
Example 24
Project: oauth-master File: NingHttpClient.java View source code |
private <T> Future<T> doExecuteAsync(String userAgent, Map<String, String> headers, Verb httpVerb, String completeUrl, BodySetter bodySetter, Object bodyContents, OAuthAsyncRequestCallback<T> callback, OAuthRequest.ResponseConverter<T> converter) {
AsyncHttpClient.BoundRequestBuilder boundRequestBuilder;
switch(httpVerb) {
case GET:
boundRequestBuilder = client.prepareGet(completeUrl);
break;
case POST:
boundRequestBuilder = client.preparePost(completeUrl);
break;
case PUT:
boundRequestBuilder = client.preparePut(completeUrl);
break;
case DELETE:
boundRequestBuilder = client.prepareDelete(completeUrl);
break;
default:
throw new IllegalArgumentException("message build error: unknown verb type");
}
if (httpVerb.isPermitBody()) {
if (!headers.containsKey(CONTENT_TYPE)) {
boundRequestBuilder = boundRequestBuilder.addHeader(CONTENT_TYPE, DEFAULT_CONTENT_TYPE);
}
boundRequestBuilder = bodySetter.setBody(boundRequestBuilder, bodyContents);
}
for (Map.Entry<String, String> header : headers.entrySet()) {
boundRequestBuilder.addHeader(header.getKey(), header.getValue());
}
if (userAgent != null) {
boundRequestBuilder.setHeader(OAuthConstants.USER_AGENT_HEADER_NAME, userAgent);
}
return boundRequestBuilder.execute(new OAuthAsyncCompletionHandler<>(callback, converter));
}
Example 25
Project: scribe-master File: NingHttpClient.java View source code |
private <T> Future<T> doExecuteAsync(String userAgent, Map<String, String> headers, Verb httpVerb, String completeUrl, BodySetter bodySetter, Object bodyContents, OAuthAsyncRequestCallback<T> callback, OAuthRequest.ResponseConverter<T> converter) {
AsyncHttpClient.BoundRequestBuilder boundRequestBuilder;
switch(httpVerb) {
case GET:
boundRequestBuilder = client.prepareGet(completeUrl);
break;
case POST:
boundRequestBuilder = client.preparePost(completeUrl);
break;
case PUT:
boundRequestBuilder = client.preparePut(completeUrl);
break;
case DELETE:
boundRequestBuilder = client.prepareDelete(completeUrl);
break;
default:
throw new IllegalArgumentException("message build error: unknown verb type");
}
if (httpVerb.isPermitBody()) {
if (!headers.containsKey(CONTENT_TYPE)) {
boundRequestBuilder = boundRequestBuilder.addHeader(CONTENT_TYPE, DEFAULT_CONTENT_TYPE);
}
boundRequestBuilder = bodySetter.setBody(boundRequestBuilder, bodyContents);
}
for (Map.Entry<String, String> header : headers.entrySet()) {
boundRequestBuilder.addHeader(header.getKey(), header.getValue());
}
if (userAgent != null) {
boundRequestBuilder.setHeader(OAuthConstants.USER_AGENT_HEADER_NAME, userAgent);
}
return boundRequestBuilder.execute(new OAuthAsyncCompletionHandler<>(callback, converter));
}
Example 26
Project: scribejava-master File: NingHttpClient.java View source code |
private <T> Future<T> doExecuteAsync(String userAgent, Map<String, String> headers, Verb httpVerb, String completeUrl, BodySetter bodySetter, Object bodyContents, OAuthAsyncRequestCallback<T> callback, OAuthRequest.ResponseConverter<T> converter) {
AsyncHttpClient.BoundRequestBuilder boundRequestBuilder;
switch(httpVerb) {
case GET:
boundRequestBuilder = client.prepareGet(completeUrl);
break;
case POST:
boundRequestBuilder = client.preparePost(completeUrl);
break;
case PUT:
boundRequestBuilder = client.preparePut(completeUrl);
break;
case DELETE:
boundRequestBuilder = client.prepareDelete(completeUrl);
break;
default:
throw new IllegalArgumentException("message build error: unknown verb type");
}
if (httpVerb.isPermitBody()) {
if (!headers.containsKey(CONTENT_TYPE)) {
boundRequestBuilder = boundRequestBuilder.addHeader(CONTENT_TYPE, DEFAULT_CONTENT_TYPE);
}
boundRequestBuilder = bodySetter.setBody(boundRequestBuilder, bodyContents);
}
for (Map.Entry<String, String> header : headers.entrySet()) {
boundRequestBuilder.addHeader(header.getKey(), header.getValue());
}
if (userAgent != null) {
boundRequestBuilder.setHeader(OAuthConstants.USER_AGENT_HEADER_NAME, userAgent);
}
return boundRequestBuilder.execute(new OAuthAsyncCompletionHandler<>(callback, converter));
}
Example 27
Project: Singularity-master File: SingularityMainModule.java View source code |
@Override
public void configure(Binder binder) {
binder.bind(HostAndPort.class).annotatedWith(named(HTTP_HOST_AND_PORT)).toProvider(SingularityHostAndPortProvider.class).in(Scopes.SINGLETON);
binder.bind(LeaderLatch.class).to(SingularityLeaderLatch.class).in(Scopes.SINGLETON);
binder.bind(CuratorFramework.class).toProvider(SingularityCuratorProvider.class).in(Scopes.SINGLETON);
Multibinder<ConnectionStateListener> connectionStateListeners = Multibinder.newSetBinder(binder, ConnectionStateListener.class);
connectionStateListeners.addBinding().to(SingularityAbort.class).in(Scopes.SINGLETON);
Multibinder<LeaderLatchListener> leaderLatchListeners = Multibinder.newSetBinder(binder, LeaderLatchListener.class);
leaderLatchListeners.addBinding().to(SingularityLeaderController.class).in(Scopes.SINGLETON);
binder.bind(SingularityDriverManager.class).in(Scopes.SINGLETON);
binder.bind(SingularityLeaderController.class).in(Scopes.SINGLETON);
if (configuration.getSmtpConfigurationOptional().isPresent()) {
binder.bind(SingularityMailer.class).to(SmtpMailer.class).in(Scopes.SINGLETON);
} else {
binder.bind(SingularityMailer.class).toInstance(NoopMailer.getInstance());
}
binder.bind(SingularitySmtpSender.class).in(Scopes.SINGLETON);
binder.bind(MailTemplateHelpers.class).in(Scopes.SINGLETON);
binder.bind(SingularityExceptionNotifier.class).in(Scopes.SINGLETON);
binder.bind(LoadBalancerClient.class).to(LoadBalancerClientImpl.class).in(Scopes.SINGLETON);
binder.bind(SingularityMailRecordCleaner.class).in(Scopes.SINGLETON);
binder.bind(SingularityWebhookPoller.class).in(Scopes.SINGLETON);
binder.bind(SingularityAbort.class).in(Scopes.SINGLETON);
binder.bind(SingularityExceptionNotifierManaged.class).in(Scopes.SINGLETON);
binder.bind(SingularityWebhookSender.class).in(Scopes.SINGLETON);
binder.bind(SingularityUsageHelper.class).in(Scopes.SINGLETON);
binder.bind(NotifyingExceptionMapper.class).in(Scopes.SINGLETON);
binder.bind(ObjectMapper.class).toProvider(DropwizardObjectMapperProvider.class).in(Scopes.SINGLETON);
binder.bind(MetricRegistry.class).toProvider(DropwizardMetricRegistryProvider.class).in(Scopes.SINGLETON);
binder.bind(AsyncHttpClient.class).to(SingularityAsyncHttpClient.class).in(Scopes.SINGLETON);
binder.bind(ServerProvider.class).in(Scopes.SINGLETON);
binder.bind(SingularityDropwizardHealthcheck.class).in(Scopes.SINGLETON);
binder.bindConstant().annotatedWith(Names.named(SERVER_ID_PROPERTY)).to(UUID.randomUUID().toString());
binder.bind(SingularityManagedScheduledExecutorServiceFactory.class).in(Scopes.SINGLETON);
binder.bind(ScheduledExecutorService.class).annotatedWith(HEALTHCHECK_THREADPOOL_NAMED).toProvider(new SingularityManagedScheduledExecutorServiceProvider(configuration.getHealthcheckStartThreads(), configuration.getThreadpoolShutdownDelayInSeconds(), "healthcheck")).in(Scopes.SINGLETON);
binder.bind(ScheduledExecutorService.class).annotatedWith(NEW_TASK_THREADPOOL_NAMED).toProvider(new SingularityManagedScheduledExecutorServiceProvider(configuration.getCheckNewTasksScheduledThreads(), configuration.getThreadpoolShutdownDelayInSeconds(), "check-new-task")).in(Scopes.SINGLETON);
binder.bind(SingularityGraphiteReporterManaged.class).in(Scopes.SINGLETON);
binder.bind(SingularityMesosStatusUpdateHandler.class).in(Scopes.SINGLETON);
if (configuration.isCacheOffers()) {
binder.bind(OfferCache.class).to(SingularityOfferCache.class).in(Scopes.SINGLETON);
} else {
binder.bind(OfferCache.class).to(SingularityNoOfferCache.class).in(Scopes.SINGLETON);
}
}
Example 28
Project: vlove-master File: AgentWebSocketClient.java View source code |
public void connect() {
try {
if (c != null && !c.isClosed()) {
log.debug("Already connected, so diconnecting first.");
disconnect();
}
c = new AsyncHttpClient();
c.prepareGet("ws://localhost:8080/vlove/s/agent").execute(new WebSocketUpgradeHandler.Builder().addWebSocketListener(new AgentWebSocketListener(this, reader)).build()).get();
log.debug("Agent connected to server.");
} catch (Exception ex) {
try {
reader.println("Could not establish WebSocketConnection. " + ex.getMessage());
reader.flush();
} catch (IOException e) {
}
}
}
Example 29
Project: abiquo-master File: ApplianceManagerUploadIT.java View source code |
private void uploadOVFPackageInstance(final String idEnterprise, final TemplateDto diskInfo, final File diskFile, final boolean blocking) throws IOException, InterruptedException, ExecutionException {
final String ovfsposturl = String.format("%s/erepos/%s/templates", TestServerListener.BASE_URI, idEnterprise);
AsyncHttpClient httpClient = uploadClient();
ListenableFuture<com.ning.http.client.Response> resFuture = httpClient.executeRequest(uploadParts(ovfsposturl, diskInfo, diskFile));
if (blocking) {
com.ning.http.client.Response res = resFuture.get();
if (res.getStatusCode() / 200 != 1) {
throw new RuntimeException("Can't upload " + res.getStatusText());
}
httpClient.close();
}
// TODO add callbacks
}
Example 30
Project: async-http-client-plugin-master File: AHCTest.java View source code |
@Test(expected = SunCertPathBuilderException.class)
public void failsOnSelfSignedCertificate() throws Throwable {
try {
ProxyConfiguration proxy = Jenkins.getInstance().proxy;
URL url = new URL("https://letsencrypt.org");
HttpURLConnection connection = (HttpURLConnection) (proxy == null ? url.openConnection() : url.openConnection(proxy.createProxy("self-signed.badssl.com")));
connection.setRequestMethod("HEAD");
connection.setConnectTimeout(30000);
connection.connect();
throw new AssumptionViolatedException("The certificate for self-signed.badssl.com is not trusted");
} catch (SSLHandshakeException e) {
} catch (SocketTimeoutException e) {
throw new AssumptionViolatedException("We can connect to self-signed.badssl.com", e);
}
AsyncHttpClient ahc = AHC.instance();
ListenableFuture<Response> response = ahc.prepareGet("https://self-signed.badssl.com/").execute();
try {
response.get();
} catch (ExecutionException e) {
throw e.getCause().getCause().getCause().getCause().getCause();
}
fail("Self Signed certificate accepted");
}
Example 31
Project: atmosphere-extensions-master File: JettyGuiceJerseyTest.java View source code |
@Test(timeOut = 20000) public void testSuspendTimeout() { logger.info("running test: testSuspendTimeout"); AsyncHttpClient c = new AsyncHttpClient(); try { long t1 = System.currentTimeMillis(); Response r = c.prepareGet(urlTarget).execute().get(10, TimeUnit.SECONDS); assertNotNull(r); assertEquals(r.getStatusCode(), 200); String resume = r.getResponseBody(); assertEquals(resume, "resume"); long current = System.currentTimeMillis() - t1; assertTrue(current > 5000 && current < 10000); } catch (Exception e) { logger.error("test failed", e); fail(e.getMessage()); } c.close(); }
Example 32
Project: elasticsearch-batch-percolator-master File: BatchPercolatorRestTest.java View source code |
@Test public void basicRestPercolationTest() throws ExecutionException, InterruptedException, IOException { AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); final String docId = "docId"; logger.info("--> Add dummy doc"); client.admin().indices().prepareDelete("_all").execute().actionGet(); client.prepareIndex("test", "type", "1").setSource("field1", "value", "field2", "value").execute().actionGet(); logger.info("--> register query1 with highlights"); client.prepareIndex("test", BatchPercolatorService.TYPE_NAME, "1").setSource(getSource(termQuery("field1", "fox"), new HighlightBuilder().field("field1").preTags("<b>").postTags("</b>"))).execute().actionGet(); logger.info("--> register query2 with highlights"); client.prepareIndex("test", BatchPercolatorService.TYPE_NAME, "2").setSource(getSource(termQuery("field2", "meltwater"), new HighlightBuilder().requireFieldMatch(true).order("score").highlightQuery(termQuery("field2", "meltwater")).field("field2").preTags("<b>").postTags("</b>"))).execute().actionGet(); logger.info("--> Doing percolation with Rest API"); BytesReference source = new BatchPercolateSourceBuilder().addDoc(docBuilder().setDoc(jsonBuilder().startObject().field("_id", docId).field("field1", "the fox is here").field("field2", "meltwater percolator").endObject())).toXContent(JsonXContent.contentBuilder(), EMPTY_PARAMS).bytes(); Response restResponse = asyncHttpClient.preparePost("http://localhost:9200/test/type/_batchpercolate").setHeader("Content-type", "application/json").setBody(source.toUtf8()).execute().get(); assertThat(restResponse.getStatusCode(), equalTo(200)); String responseBody = restResponse.getResponseBody(); List<String> results = JsonPath.read(responseBody, "$.results"); assertThat(results.size(), is(1)); String matchedDoc = JsonPath.read(responseBody, "$.results[0].doc"); assertThat(matchedDoc, is(docId)); List<String> matches = JsonPath.read(responseBody, "$.results[0].matches"); assertThat(matches.size(), is(2)); assertThat(JsonPath.<List<String>>read(responseBody, "$.results[0].matches[?(@.query_id==1)].query_id").get(0), is("1")); assertThat(JsonPath.<List<String>>read(responseBody, "$.results[0].matches[?(@.query_id==1)].highlights.field1[0]").get(0), is("the <b>fox</b> is here")); assertThat(JsonPath.<List<String>>read(responseBody, "$.results[0].matches[?(@.query_id==2)].query_id").get(0), is("2")); assertThat(JsonPath.<List<String>>read(responseBody, "$.results[0].matches[?(@.query_id==2)].highlights.field2[0]").get(0), is("<b>meltwater</b> percolator")); }
Example 33
Project: goodwill-access-master File: GoodwillAccessor.java View source code |
// note: if called from base-class constructor, couldn't sub-class; hence just make static private static AsyncHttpClient createHttpClient() { // Don't limit the number of connections per host // See https://github.com/ning/async-http-client/issues/issue/28 final AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder(); builder.setMaximumConnectionsPerHost(-1); return new AsyncHttpClient(builder.build()); }
Example 34
Project: jersey-ahc-client-master File: AhcHttpClient.java View source code |
/** * Create a default AsyncHttpClient client handler. * * @return a default AsyncHttpClient client handler. */ private static AhcClientHandler createDefaultClientHander(final ClientConfig cc) { if (AhcConfig.class.isAssignableFrom(cc.getClass()) || DefaultAhcConfig.class.isAssignableFrom(cc.getClass())) { final AhcConfig c = AhcConfig.class.cast(cc); return new AhcClientHandler(new AsyncHttpClient(c.getAsyncHttpClientConfigBuilder().build()), c); } else { throw new IllegalStateException("Client Config Type not supported"); } }
Example 35
Project: jersey-master File: GrizzlyConnectorProvider.java View source code |
/** * Retrieve the underlying Grizzly {@link AsyncHttpClient} instance from * {@link org.glassfish.jersey.client.JerseyClient} or {@link org.glassfish.jersey.client.JerseyWebTarget} * configured to use {@code GrizzlyConnectorProvider}. * * @param component {@code JerseyClient} or {@code JerseyWebTarget} instance that is configured to use * {@code GrizzlyConnectorProvider}. * @return underlying Grizzly {@code AsyncHttpClient} instance. * * @throws java.lang.IllegalArgumentException in case the {@code component} is neither {@code JerseyClient} * nor {@code JerseyWebTarget} instance or in case the component * is not configured to use a {@code GrizzlyConnectorProvider}. * @since 2.8 */ public static AsyncHttpClient getHttpClient(Configurable<?> component) { if (!(component instanceof Initializable)) { throw new IllegalArgumentException(LocalizationMessages.INVALID_CONFIGURABLE_COMPONENT_TYPE(component.getClass().getName())); } final Initializable<?> initializable = (Initializable<?>) component; Connector connector = initializable.getConfiguration().getConnector(); if (connector == null) { initializable.preInitialize(); connector = initializable.getConfiguration().getConnector(); } if (connector instanceof GrizzlyConnector) { return ((GrizzlyConnector) connector).getGrizzlyClient(); } throw new IllegalArgumentException(LocalizationMessages.EXPECTED_CONNECTOR_PROVIDER_NOT_USED()); }
Example 36
Project: jersey-metrics-filter-master File: FullStackTest.java View source code |
@Before
public void setUp() throws Exception {
LogManager.getLogManager().reset();
SLF4JBridgeHandler.install();
final MetricRegistry registry = new MetricRegistry();
metricRegistry = registry;
final Map<String, String> initParams = new HashMap<>();
initParams.put(ResourceConfig.PROPERTY_RESOURCE_FILTER_FACTORIES, HttpStatusCodeCounterResourceFilterFactory.class.getCanonicalName());
initParams.put(ResourceConfig.FEATURE_DISABLE_WADL, "true");
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
binder().requireExplicitBindings();
install(new ResourceMethodWrappedDispatchModule());
install(new ServletModule() {
@Override
protected void configureServlets() {
serve("/*").with(GuiceContainer.class, initParams);
}
});
install(new JerseyServletModule());
bind(GuiceFilter.class);
bind(GuiceContainer.class);
bind(EnabledOnClass.class);
bind(DisabledOnClass.class);
bind(EnabledOnClassDisabledOnMethod.class);
install(new ConfigModuleBuilder().build());
install(new ResourceMethodMetricsModule());
bind(MetricRegistry.class).annotatedWith(JerseyResourceMetrics.class).toInstance(registry);
}
});
httpClient = new AsyncHttpClient();
server = getServer(injector.getInstance(GuiceFilter.class));
server.start();
consoleReporter = ConsoleReporter.forRegistry(registry).build();
}
Example 37
Project: killbill-commons-master File: TestJerseyBaseServerModule.java View source code |
@Test(groups = "slow") public void testJerseyIntegration() throws Exception { final BaseServerModuleBuilder builder = new BaseServerModuleBuilder(); builder.addJaxrsResource("org.killbill.commons.skeleton.modules"); final Server server = startServer(builder.build(), new HelloModule()); final AsyncHttpClient client = new AsyncHttpClient(); final Future<Response> responseFuture = client.prepareGet("http://127.0.0.1:" + ((NetworkConnector) server.getConnectors()[0]).getPort() + "/hello/alhuile/").execute(); final String body = responseFuture.get().getResponseBody(); Assert.assertEquals(body, "Hello alhuile"); server.stop(); }
Example 38
Project: motherbrain-master File: FetchUrlComponent.java View source code |
@Override
public void prepare() {
Builder builder = new AsyncHttpClientConfig.Builder();
AsyncHttpClientConfig asyncConfig = builder.setAllowPoolingConnection(true).setConnectionTimeoutInMs(HTTP_TIMEOUT).setRequestTimeoutInMs(HTTP_TIMEOUT).setFollowRedirects(false).build();
_asyncHttpClient = new AsyncHttpClient(asyncConfig);
}
Example 39
Project: signalk-server-java-master File: SubcribeWsTest.java View source code |
@Test public void shouldGetWsUrl() throws Exception { final AsyncHttpClient c = new AsyncHttpClient(); //get a sessionid Response r1 = c.prepareGet("http://localhost:" + restPort + SIGNALK_AUTH + "/demo/pass").execute().get(); assertEquals(200, r1.getStatusCode()); Response r2 = c.prepareGet("http://localhost:" + restPort + SIGNALK_DISCOVERY).setCookies(r1.getCookies()).execute().get(); Json json = Json.read(r2.getResponseBody()); assertEquals("ws://localhost:" + wsPort + SIGNALK_WS, json.at("endpoints").at("v1").at(websocketUrl).asString()); c.close(); }
Example 40
Project: sloot-editor-master File: UploadToSpritesSlootController.java View source code |
private void upload(String baseUrl, File zipFile, String slootContentJson) throws IllegalArgumentException, IOException, CoreException { final AsyncHttpClient client = new AsyncHttpClient(); /* Send the Sloot Content */ AsyncCompletionHandler<String> handler = new AsyncCompletionHandler<String>() { @Override public String onCompleted(Response resp) throws Exception { System.err.println("Response: " + resp.getResponseBody()); return null; } }; String url = String.format("http://%s/api/slootContent", baseUrl); client.preparePost(url).addHeader("Content-Type", "application/json").setBody(slootContentJson).execute(handler); /* Send all the generated files */ IPath genPath = toExport.getFullPath().append("tmp").append(slootProjectProvider.collectionTitle); IFolder tmpFolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(genPath); final String putUrl = url + "/" + slootProjectProvider.collectionTitle; if (!tmpFolder.exists()) { return; } FilePart zipFilePart = new FilePart(zipFile.getName(), zipFile); client.preparePut(putUrl).addHeader("Content-Type", "multipart/form-data").addBodyPart(zipFilePart).execute(); }
Example 41
Project: wagon-ahc-master File: AhcWagon.java View source code |
@Override
protected void openConnectionInternal() throws ConnectionException, AuthenticationException {
String protocol = UrlUtils.getProtocol(getRepository().getUrl());
protocol = UrlUtils.normalizeProtocol(protocol);
AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
RealmBuilder realmBuilder = null;
if (authenticationInfo != null) {
String username = authenticationInfo.getUserName();
String password = authenticationInfo.getPassword();
realmBuilder = (new Realm.RealmBuilder()).setPrincipal(username).setPassword(password).setUsePreemptiveAuth(false).setEnconding(credentialEncoding);
builder.setRealm(realmBuilder.build());
}
ProxyInfo proxyInfo = getProxyInfo(protocol, getRepository().getHost());
if (proxyInfo == null && "https".equalsIgnoreCase(protocol)) {
proxyInfo = getProxyInfo("http", getRepository().getHost());
}
if (proxyInfo != null) {
String proxyUsername = proxyInfo.getUserName();
String proxyPassword = proxyInfo.getPassword();
String proxyHost = proxyInfo.getHost();
int proxyPort = proxyInfo.getPort();
String proxyNtlmHost = proxyInfo.getNtlmHost();
String proxyNtlmDomain = proxyInfo.getNtlmDomain();
if (StringUtils.isNotEmpty(proxyNtlmHost)) {
proxyHost = proxyNtlmDomain;
}
if (proxyHost != null) {
ProxyServer proxyServer = new ProxyServer(proxyHost, proxyPort);
if (proxyUsername != null && proxyPassword != null) {
proxyServer = new ProxyServer(proxyHost, proxyPort, proxyUsername, proxyPassword);
proxyServer.setEncoding(credentialEncoding);
} else {
proxyServer = new ProxyServer(proxyHost, proxyPort);
}
if (StringUtils.isNotEmpty(proxyNtlmDomain)) {
proxyServer.setNtlmDomain(proxyNtlmDomain);
}
builder.setProxyServer(proxyServer);
}
}
builder.setConnectionTimeoutInMs(getTimeout());
builder.setRequestTimeoutInMs(getTimeout());
builder.setFollowRedirects(maxRedirections > 0);
builder.setMaximumNumberOfRedirects(maxRedirections);
builder.setUserAgent("Apache-Maven");
builder.setCompressionEnabled(true);
if (httpHeaders != null && httpHeaders.getProperty("User-Agent") != null) {
builder.setUserAgent(httpHeaders.getProperty("User-Agent"));
}
AsyncHttpClientConfig config = builder.build();
// NOTE: Explicitly specify provider to workaround class loading bug in ahc:1.4.0
httpClient = new AsyncHttpClient(new NettyAsyncHttpProvider(config), config);
}
Example 42
Project: api-java-client-master File: StreamClient.java View source code |
public void connect() throws IOException {
checkState(socket == null, "the client is already listening to events");
checkState(asyncClient == null, "the client is already listening to events");
LOG.fine("Connecting to " + endpoint + "...");
AtmosphereClient client = ClientFactory.getDefault().newClient(AtmosphereClient.class);
AtmosphereRequest request = //
client.newRequestBuilder().method(//
METHOD.GET).uri(//
endpoint + "?Content-Type=application/json").transport(//
TRANSPORT.SSE).transport(TRANSPORT.LONG_POLLING).build();
AsyncHttpClientConfig.Builder config = new AsyncHttpClientConfig.Builder();
config.setRequestTimeoutInMs(-1);
config.setIdleConnectionTimeoutInMs(-1);
if (sslConfiguration != null) {
config.setHostnameVerifier(sslConfiguration.hostnameVerifier());
config.setSSLContext(sslConfiguration.sslContext());
}
config.setRealm(//
new Realm.RealmBuilder().setPrincipal(//
username).setPassword(//
password).setUsePreemptiveAuth(//
true).setScheme(//
Realm.AuthScheme.BASIC).build());
asyncClient = new AsyncHttpClient(config.build());
socket = client.create(client.newOptionsBuilder().runtime(asyncClient).build());
socket.open(request);
configure();
LOG.fine("Connected!");
}
Example 43
Project: cdap-master File: NettyRouterTestBase.java View source code |
@Test public void testRouterAsync() throws Exception { int numElements = 123; AsyncHttpClientConfig.Builder configBuilder = new AsyncHttpClientConfig.Builder(); final AsyncHttpClient asyncHttpClient = new AsyncHttpClient(new NettyAsyncHttpProvider(configBuilder.build()), configBuilder.build()); final CountDownLatch latch = new CountDownLatch(numElements); final AtomicInteger numSuccessfulRequests = new AtomicInteger(0); for (int i = 0; i < numElements; ++i) { final int elem = i; final Request request = new RequestBuilder("GET").setUrl(resolveURI(DEFAULT_SERVICE, String.format("%s/%s-%d", "/v1/ping", "async", i))).build(); asyncHttpClient.executeRequest(request, new AsyncCompletionHandler<Void>() { @Override public Void onCompleted(Response response) throws Exception { latch.countDown(); Assert.assertEquals(HttpResponseStatus.OK.getCode(), response.getStatusCode()); numSuccessfulRequests.incrementAndGet(); return null; } @Override public void onThrowable(Throwable t) { LOG.error("Got exception while posting {}", elem, t); latch.countDown(); } }); // Sleep so as not to overrun the server. TimeUnit.MILLISECONDS.sleep(1); } latch.await(); asyncHttpClient.close(); Assert.assertEquals(numElements, numSuccessfulRequests.get()); // we use sticky endpoint strategy so the sum of requests from the two gateways should be NUM_ELEMENTS Assert.assertTrue(numElements == (defaultServer1.getNumRequests() + defaultServer2.getNumRequests())); }
Example 44
Project: GmPoster-master File: RePoster.java View source code |
public void setup() {
config.setRequestTimeout(this.getCfg().requestTimeout()).setConnectTimeout(this.getCfg().connectionTimeout()).setReadTimeout(this.getCfg().readTimeout());
asyncHttpClient = new AsyncHttpClient(config.build());
get("/" + this.getCfg().routeName(), ( req, res) -> {
log().log(Level.INFO, req.body());
String file = req.queryParams("file");
if (file == null || file == "") {
file = this.getCfg().fileToPost();
}
Path toPost = Paths.get(file);
if (!Files.exists(toPost)) {
log().warning("no content to be processed; check if the file: " + this.getCfg().fileToPost() + " exists and is readable.");
res.status(HttpServletResponse.SC_NO_CONTENT);
} else {
String url = req.queryParams("post_url");
if (url == null || url == "") {
url = this.getCfg().remoteUrl();
}
String authHeaderName = this.getAuthHeaderName();
ListenableFuture<Response> future = null;
if (req.params().containsKey(authHeaderName)) {
String authHeaderValue = req.queryParams(authHeaderName);
if (!StringUtils.isEmpty(this.getAuthHeaderRename())) {
authHeaderName = this.getAuthHeaderRename();
}
future = postIt(toPost, url, authHeaderName, authHeaderValue);
} else {
future = postIt(toPost, url);
}
if (future != null) {
Response r = future.get();
r.getCookies().stream().map( cookie -> {
res.cookie(cookie.getName(), cookie.getValue());
return res;
});
r.getHeaders().keySet().stream().map( h -> {
String v = r.getHeaders(h).stream().map( hv -> hv).collect(Collectors.joining("; "));
res.header(h, v);
return res;
});
res.status(200);
res.body(r.getResponseBody());
res.type(r.getContentType());
if (r.getStatusCode() == this.getCfg().remoteStatusExpected()) {
log().info(r.getResponseBody());
res.status(200);
} else {
log().warning(r.getResponseBody());
res.status(r.getStatusCode());
}
return res.body();
}
}
return "";
});
}
Example 45
Project: OpenTripPlanner-master File: WebsocketGtfsRealtimeUpdater.java View source code |
@Override public void run() throws InterruptedException { while (true) { AsyncHttpClient client = new AsyncHttpClient(); WebSocketListener listener = new Listener(); WebSocketUpgradeHandler handler = new WebSocketUpgradeHandler.Builder().addWebSocketListener(listener).build(); WebSocket socket = null; boolean connectionSuccessful = true; // Try to create a websocket connection try { socket = client.prepareGet(url).execute(handler).get(); LOG.info("Successfully connected to {}.", url); } catch (ExecutionException e) { LOG.error("Could not connect to {}: {}", url, e.getCause().getMessage()); connectionSuccessful = false; } catch (Exception e) { LOG.error("Unknown exception when trying to connect to {}:", url, e); connectionSuccessful = false; } // If connection was unsuccessful, wait some time before trying again if (!connectionSuccessful) { Thread.sleep(reconnectPeriodSec * 1000); } // Keep checking whether connection is still open while (true) { if (socket == null || !socket.isOpen()) { // The connection is closed somehow, try to reconnect if (connectionSuccessful) { LOG.warn("Connection to {} was lost. Trying to reconnect...", url); } break; } Thread.sleep(CHECK_CONNECTION_PERIOD_SEC * 1000); } client.close(); } }
Example 46
Project: Planner-master File: WebsocketGtfsRealtimeUpdater.java View source code |
@Override public void run() throws InterruptedException { while (true) { AsyncHttpClient client = new AsyncHttpClient(); WebSocketListener listener = new Listener(); WebSocketUpgradeHandler handler = new WebSocketUpgradeHandler.Builder().addWebSocketListener(listener).build(); WebSocket socket = null; boolean connectionSuccessful = true; // Try to create a websocket connection try { socket = client.prepareGet(url).execute(handler).get(); LOG.info("Successfully connected to {}.", url); } catch (ExecutionException e) { LOG.error("Could not connect to {}: {}", url, e.getCause().getMessage()); connectionSuccessful = false; } catch (Exception e) { LOG.error("Unknown exception when trying to connect to {}:", url, e); connectionSuccessful = false; } // If connection was unsuccessful, wait some time before trying again if (!connectionSuccessful) { Thread.sleep(reconnectPeriodSec * 1000); } // Keep checking whether connection is still open while (true) { if (socket == null || !socket.isOpen()) { // The connection is closed somehow, try to reconnect if (connectionSuccessful) { LOG.warn("Connection to {} was lost. Trying to reconnect...", url); } break; } Thread.sleep(CHECK_CONNECTION_PERIOD_SEC * 1000); } client.close(); } }
Example 47
Project: tengi-master File: AbstractHttpTransportTestCase.java View source code |
@Test(timeout = 120000)
public void test_http_transport() throws Exception {
InputStream is = getClass().getResourceAsStream("transport.types.manifest");
Serializer serializer = Serializer.create(new DefaultProtocol(is, Collections.emptyList()));
Packet packet = new Packet("login");
packet.setValue("username", "Stan");
Message message = Message.create(packet);
CompletableFuture<Object> future = new CompletableFuture<>();
Object result = practice(() -> {
AsyncHttpClient client = newHttpClient();
Response response = handshake(client, serializer, httpAddress()).get();
Identifier connectionId = null;
try (AutoClosableDecoder decoder = decodeResponse(serializer, response)) {
if (decoder.readBoolean()) {
connectionId = decoder.readObject();
}
if (!(decoder.readObject() instanceof Handshake)) {
fail("No HandshakeResponse received");
}
}
AtomicBoolean stop = new AtomicBoolean(false);
ScheduledExecutorService ses = Executors.newScheduledThreadPool(2);
startLongPolling(client, serializer, connectionId, ses, stop, ( m) -> {
stop.set(true);
System.out.println(m);
future.complete(m);
}, httpAddress());
writeRequest(client, serializer, connectionId, message, null, httpAddress());
return future.get(120, TimeUnit.SECONDS);
}, ssl(), ServerTransports.HTTP_TRANSPORT);
assertEquals(message, result);
}
Example 48
Project: tez-master File: AsyncHttpConnection.java View source code |
private void initClient(HttpConnectionParams httpConnParams) throws IOException {
if (httpAsyncClient != null) {
return;
}
if (httpAsyncClient == null) {
synchronized (AsyncHttpConnection.class) {
if (httpAsyncClient == null) {
LOG.info("Initializing AsyncClient (TezBodyDeferringAsyncHandler)");
AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
if (httpConnParams.isSslShuffle()) {
//Configure SSL
SSLFactory sslFactory = httpConnParams.getSslFactory();
Preconditions.checkArgument(sslFactory != null, "SSLFactory can not be null");
sslFactory.configure(builder);
}
/**
* TODO : following settings need fine tuning.
* Change following config to accept common thread pool later.
* Change max connections based on the total inputs (ordered & unordered). Need to tune
* setMaxConnections & addRequestFilter.
*/
builder.setAllowPoolingConnection(httpConnParams.isKeepAlive()).setAllowSslConnectionPool(httpConnParams.isKeepAlive()).setCompressionEnabled(false).setMaximumConnectionsPerHost(//.addRequestFilter(new ThrottleRequestFilter())
1).setConnectionTimeoutInMs(httpConnParams.getConnectionTimeout()).setRequestTimeoutInMs(httpConnParams.getReadTimeout()).setUseRawUrl(true).build();
httpAsyncClient = new AsyncHttpClient(builder.build());
}
}
}
}
Example 49
Project: wicket-examples-master File: EmployeeResourceTest.java View source code |
@Test public void testGetAll() throws InterruptedException, ExecutionException, IOException { AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); Future<Response> f = asyncHttpClient.prepareGet("http://localhost:8080/employeesmanager/employees").execute(); Response r = f.get(); String responseString = r.getResponseBody(); asyncHttpClient.close(); List<Employee> actual = JsonTransformer.toObjectList(responseString, Employee.class); for (Employee employee : actual) { assertTrue(employees.contains(employee)); } }
Example 50
Project: Wink-master File: AsyncHttpClientConnectionHandler.java View source code |
private Response processRequest(final ClientRequest cr, final HandlerContext context) throws IOException {
AsyncHttpClient asyncHttpClient = openConnection(cr);
NonCloseableOutputStream ncos = new NonCloseableOutputStream();
OutputStream os = adaptOutputStream(ncos, cr, context.getOutputStreamAdapters());
Request request = setupHttpRequest(cr, ncos, os);
Response response;
final AtomicReference<Throwable> failureHolder = new AtomicReference<Throwable>();
try {
response = asyncHttpClient.executeRequest(request, new AsyncCompletionHandlerBase() {
@Override
public Response onCompleted(final Response response) throws Exception {
logger.trace("Response received: {}", response);
return super.onCompleted(response);
}
public void onThrowable(Throwable t) {
logger.trace("Request failed", t);
failureHolder.set(t);
}
}).get();
} catch (InterruptedException e) {
throw (IOException) new IOException().initCause(e);
} catch (ExecutionException e) {
throw (IOException) new IOException().initCause(e);
}
// If a failure occurred, then decode and re-throw
Throwable failure = failureHolder.get();
if (failure != null) {
if (failure instanceof RuntimeException) {
throw (RuntimeException) failure;
}
if (failure instanceof IOException) {
throw (IOException) failure;
}
throw (IOException) new IOException().initCause(failure);
}
return response;
}
Example 51
Project: Java-library-master File: UrbanAirshipClient.java View source code |
/**
* Command for executing Urban Airship requests asynchronously with a ResponseCallback.
*
* @param request An Urban Airship request object.
* @param callback A ResponseCallback instance.
* @return A client response future.
*/
public <T> Future<Response> executeAsync(final Request<T> request, final ResponseCallback callback) throws IOException {
AsyncHttpClient.BoundRequestBuilder requestBuilder;
String uri;
try {
uri = request.getUri(baseUri).toString();
} catch (URISyntaxException e) {
log.error("Failed to generate a request URI from base URI " + baseUri.toString(), e);
throw new RuntimeException(e);
}
switch(request.getHttpMethod()) {
case GET:
requestBuilder = client.prepareGet(uri);
break;
case PUT:
requestBuilder = client.preparePut(uri);
break;
case POST:
requestBuilder = client.preparePost(uri);
break;
case DELETE:
requestBuilder = client.prepareDelete(uri);
break;
default:
requestBuilder = client.prepareGet(uri);
break;
}
// Headers
Map<String, String> requestHeaders = request.getRequestHeaders();
if (requestHeaders != null) {
for (Map.Entry<String, String> entry : requestHeaders.entrySet()) {
requestBuilder.addHeader(entry.getKey(), entry.getValue());
}
}
// Auth
requestBuilder.setHeader("Authorization", "Basic " + BaseEncoding.base64().encode((appKey + ":" + appSecret).getBytes()));
// Body
String body = request.getRequestBody();
ContentType contentType = request.getContentType();
if (body != null && contentType != null) {
requestBuilder.setBody(body.getBytes(contentType.getCharset()));
}
log.debug(String.format("Executing Urban Airship request to %s with body %s.", uri, request.getRequestBody()));
ResponseAsyncHandler<T> handler = new ResponseAsyncHandler<>(Optional.fromNullable(callback), request.getResponseParser());
return requestBuilder.execute(handler);
}
Example 52
Project: async-datastore-client-master File: DatastoreImpl.java View source code |
private AsyncHttpClient.BoundRequestBuilder prepareRequest(final String method, final ProtoHttpContent payload) throws IOException { final AsyncHttpClient.BoundRequestBuilder builder = client.preparePost(prefixUri + method); builder.addHeader("Authorization", "Bearer " + accessToken); builder.addHeader("Content-Type", "application/x-protobuf"); builder.addHeader("User-Agent", USER_AGENT); builder.addHeader("Accept-Encoding", "gzip"); builder.setContentLength((int) payload.getLength()); builder.setBody(payload.getMessage().toByteArray()); return builder; }
Example 53
Project: nettosphere-master File: NettyAtmosphereTest.java View source code |
@Test public void initParamTest() throws Exception { final CountDownLatch l = new CountDownLatch(1); final AtomicBoolean b = new AtomicBoolean(false); Config config = new Config.Builder().port(port).host("127.0.0.1").initParam("foo", "bar").resource("/suspend", new AtmosphereHandler() { @Override public void onRequest(AtmosphereResource r) throws IOException { if (r.getAtmosphereConfig().getInitParameter("foo") != null) { b.set(true); } l.countDown(); } @Override public void onStateChange(AtmosphereResourceEvent r) throws IOException { } @Override public void destroy() { } }).build(); server = new Nettosphere.Builder().config(config).build(); assertNotNull(server); server.start(); AsyncHttpClient c = new AsyncHttpClient(); try { Response r = c.prepareGet(targetUrl + "/suspend").execute().get(); assertEquals(r.getStatusCode(), 200); assertEquals(b.get(), true); } finally { c.close(); } }
Example 54
Project: parallec-master File: ExecutionManager.java View source code |
/*
* (non-Javadoc)
*
* @see akka.actor.UntypedActor#onReceive(java.lang.Object)
*/
@Override
public void onReceive(Object message) {
try {
// Start all workers
if (message instanceof InitialRequestToManager) {
director = getSender();
logger.info("parallec task state : " + ParallelTaskState.IN_PROGRESS.toString());
task.setState(ParallelTaskState.IN_PROGRESS);
task.setExecuteStartTime(startTime);
taskId = task.getTaskId();
// assumption: at least REDUCE_LEN
taskIdTrim = taskId.length() <= REDUCE_LEN ? taskId : taskId.substring(taskId.length() - REDUCE_LEN, taskId.length());
httpMeta = task.getHttpMeta();
targetHostMeta = task.getTargetHostMeta();
final RequestProtocol requestProtocol = task.getRequestProtocol();
// Get request parameters to construct a REST CALL
final String requestUrlPrefixOrig = httpMeta.getRequestUrlPostfix();
final HttpMethod httpMethod = httpMeta.getHttpMethod();
String requestPortStrOrig = httpMeta.getRequestPort();
final boolean pollable = httpMeta.isPollable();
final int maxConcurrency = task.getConcurrency();
Map<String, NodeReqResponse> nodeDataMapValid = task.getParallelTaskResult();
logger.info("Before Safety Check: total entry count: " + nodeDataMapValid.size());
Map<String, NodeReqResponse> nodeDataMapValidSafe = new HashMap<String, NodeReqResponse>();
InternalDataProvider.getInstance().filterUnsafeOrUnnecessaryRequest(nodeDataMapValid, nodeDataMapValidSafe);
logger.info("After Safety Check: total entry count in nodeDataMapValidSafe: {}", nodeDataMapValidSafe.size());
logger.debug("maxConcurrency : {}", maxConcurrency);
// after filter, no duplicated target hosts for this count.
requestCount = nodeDataMapValidSafe.size();
task.setRequestNumActual(requestCount);
logger.info("!Obtain command request for target host meta id " + targetHostMeta.getTargetHostId() + " with count: " + requestCount);
// message back
if (requestCount <= 0) {
getSender().tell(new ResponseFromManager(requestCount), getSelf());
logger.info("req count <=0. return");
// not really error. just no task to run
reply(ParallelTaskState.COMPLETED_WITHOUT_ERROR, new RuntimeException("ReqCount after trim is 0. Return."));
return;
}
int sentRequestCounter = 0;
asyncHttpClientGlobal = task.getAsyncHttpClient();
final AsyncHttpClient asyncHttpClient = asyncHttpClientGlobal;
// always send with valid safe data.
for (Entry<String, NodeReqResponse> entry : nodeDataMapValidSafe.entrySet()) {
final String targetHost = entry.getKey();
NodeReqResponse nodeReqResponse = entry.getValue();
final String requestContentOrig = nodeReqResponse.getRequestParameters().get(PcConstants.REQUEST_BODY_PLACE_HOLDER);
final String requestContent = NodeReqResponse.replaceStrByMap(nodeReqResponse.getRequestParameters(), requestContentOrig);
final String resourcePath = NodeReqResponse.replaceStrByMap(nodeReqResponse.getRequestParameters(), requestUrlPrefixOrig);
// add support for port replacement
final String requestPortStr = NodeReqResponse.replaceStrByMap(nodeReqResponse.getRequestParameters(), requestPortStrOrig);
int requestPort = 80;
try {
requestPort = Integer.parseInt(requestPortStr);
} catch (NumberFormatException nfe) {
logger.error("Error parsing replacable port with NumberFormatException. " + "No valid port for host {}. Now use default port 80", targetHost);
}
// only pass when it is not in manager
final ParallecResponseHandler handler = task.getConfig().getHandlerExecutionLocation() == HandlerExecutionLocation.MANAGER ? null : task.getHandler();
final Map<String, Object> responseContext = task.getConfig().getHandlerExecutionLocation() == HandlerExecutionLocation.MANAGER ? null : task.getResponseContext();
Map<String, String> httpHeaderMapLocal = new HashMap<String, String>();
httpHeaderMapLocal.putAll(httpMeta.getHeaderMetadata().getHeaderMap());
// 3rd, add the dynamic part ; generic var based
// replacement.
PcHttpUtils.replaceHttpHeaderMapNodeSpecific(httpHeaderMapLocal, nodeReqResponse.getRequestParameters());
/**
* If want to print to check
*/
if (task.getConfig().isPrintHttpTrueHeaderMap()) {
for (Entry<String, String> headerEntry : httpHeaderMapLocal.entrySet()) {
String headerKey = headerEntry.getKey();
String headerValue = headerEntry.getValue();
nodeReqResponse.getRequestParameters().put(PcConstants.REQUEST_PARAMETER_HTTP_HEADER_PREFIX + headerKey, headerValue);
}
}
if (task.getConfig().isPrintPoller()) {
// put the one before encoding
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_NEED_POLLER, Boolean.toString(pollable));
}
/**
* 20140310: END add pass HTTP header into Operation worker
* as part of the
*/
String targetHostNew = nodeReqResponse.getRequestParameters().get(PcConstants.UNIFORM_TARGET_HOST_VAR_WHEN_CHECK);
if (targetHostNew != null) {
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_TRUE_TARGET_NODE, targetHostNew);
}
final String hostUniform = (targetHostNew == null) ? null : targetHostNew;
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_STATUS, SingleTargetTaskStatus.IN_PROGRESS.toString());
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_TRUE_CONTENT, requestContent);
// put the one before encoding
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_TRUE_URL, resourcePath);
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_TRUE_PORT, Integer.toString(requestPort));
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_HTTP_HEADER_META, httpMeta.getHeaderMetadata().getHeaderStr());
long prepareRequestTime = System.currentTimeMillis();
String prepareRequestTimeStr = PcDateUtils.getDateTimeStrStandard(new Date(prepareRequestTime));
nodeReqResponse.getRequestParameters().put(PcConstants.NODE_REQUEST_PREPARE_TIME, prepareRequestTimeStr);
final SshMeta sshMeta = task.getSshMeta();
final TcpMeta tcpMeta = task.getTcpMeta();
final UdpMeta udpMeta = task.getUdpMeta();
final PingMeta pingMeta = task.getPingMeta();
final ResponseHeaderMeta responseHeaderMeta = task.getHttpMeta().getResponseHeaderMeta();
logger.debug("REQUEST GENERATED: " + (sentRequestCounter + 1) + " / " + requestCount + " after " + Double.toString((prepareRequestTime - startTime) / 1000.0) + " secs" + ": (NOT SEND YET) " + targetHost + " at " + prepareRequestTimeStr);
ActorRef worker = getContext().system().actorOf(Props.create(OperationWorker.class, new TaskRequest(task.getConfig().getActorMaxOperationTimeoutSec(), requestProtocol, targetHost, hostUniform, requestPort, resourcePath, requestContent, httpMethod, pollable, httpHeaderMapLocal, handler, responseContext, sshMeta, tcpMeta, udpMeta, pingMeta, responseHeaderMeta), asyncHttpClient, task.getHttpMeta().getHttpPollerProcessor()));
workers.put(targetHost, worker);
++sentRequestCounter;
}
// end for loop
final RequestToBatchSenderAsstManager requestToBatchSenderAsstManager = new RequestToBatchSenderAsstManager(taskId, task.getConfig().getAsstManagerRetryIntervalMillis(), new ArrayList<ActorRef>(workers.values()), getSelf(), maxConcurrency);
batchSenderAsstManager = getContext().system().actorOf(Props.create(AssistantExecutionManager.class), "RequestToBatchSenderAsstManager-" + UUID.randomUUID().toString());
batchSenderAsstManager.tell(requestToBatchSenderAsstManager, getSelf());
final FiniteDuration timeOutDuration = Duration.create(task.getConfig().getTimeoutInManagerSec(), TimeUnit.SECONDS);
timeoutMessageCancellable = getContext().system().scheduler().scheduleOnce(timeOutDuration, getSelf(), ExecutionManagerMsgType.OPERATION_TIMEOUT, getContext().system().dispatcher(), getSelf());
logger.debug("Scheduled TIMEOUT_IN_MANAGER_SCONDS OPERATION_TIMEOUT after SEC {} ", task.getConfig().getTimeoutInManagerSec());
} else if (message instanceof ResponseOnSingleTask) {
ResponseOnSingleTask taskResponse = (ResponseOnSingleTask) message;
this.responseCount += 1;
task.setResponsedNum(responseCount);
/**
* add feedback of current responseCount to asst manager
* ResponseCountToBatchSenderAsstManager
*/
final ResponseCountToBatchSenderAsstManager responseCountToBatchSenderAsstManager = new ResponseCountToBatchSenderAsstManager(this.responseCount);
batchSenderAsstManager.tell(responseCountToBatchSenderAsstManager, getSelf());
logger.debug("Send batchSenderAsstManager to responseCountToBatchSenderAsstManager: " + this.responseCount);
String hostName = taskResponse.getRequest().getHost();
if (responseMap.containsKey(hostName)) {
logger.error("ERROR: duplicate response received {}", hostName);
}
responseMap.put(hostName, taskResponse);
String responseSummary = taskResponse.isError() ? "FAIL_GET_RESPONSE: " + taskResponse.getErrorMessage() : taskResponse.getStatusCode();
Map<String, LinkedHashSet<String>> resultMap = task.getAggregateResultMap();
if (resultMap.containsKey(responseSummary)) {
resultMap.get(responseSummary).add(hostName);
} else {
LinkedHashSet<String> set = new LinkedHashSet<String>();
set.add(hostName);
resultMap.put(responseSummary, set);
}
// save response to result map
NodeReqResponse nrr = task.getParallelTaskResult().get(hostName);
nrr.setSingleTaskResponse(taskResponse);
String responseTrim = taskResponse.getResponseContent() == null ? null : taskResponse.getResponseContent().trim();
String displayResponse = (Strings.isNullOrEmpty(responseTrim)) ? "EMPTY" : responseTrim.substring(0, Math.min(PcConstants.AGNET_RESPONSE_MAX_RESPONSE_DISPLAY_BYTE, responseTrim.length()));
long responseReceiveTime = System.currentTimeMillis();
// %.5g%n
double progressPercent = (double) (responseCount) / (double) (requestCount) * 100.0;
String responseReceiveTimeStr = PcDateUtils.getDateTimeStrStandard(new Date(responseReceiveTime));
String secondElapsedStr = Double.toString((responseReceiveTime - startTime) / 1000.0);
// log the first/ last 5 percent; then sample the middle
if (requestCount < ParallecGlobalConfig.logAllResponseIfTotalLessThan || responseCount <= ParallecGlobalConfig.logAllResponseBeforeInitCount || progressPercent < ParallecGlobalConfig.logAllResponseBeforePercent || progressPercent > ParallecGlobalConfig.logAllResponseAfterPercent || responseCount % ParallecGlobalConfig.logResponseInterval == 0) {
// percent is escaped using percent sign; hostName
logger.info(String.format("\n[%d]__RESP_RECV_IN_MGR %d (+%d) / %d (%.5g%%) " + "AFT %s S @ %s @ %s , TaskID : %s , CODE: %s, RESP_BRIEF: %s %s", responseCount, responseCount, requestCount - responseCount, requestCount, progressPercent, secondElapsedStr, hostName, responseReceiveTimeStr, taskIdTrim, taskResponse.getStatusCode(), displayResponse, taskResponse.getErrorMessage() == null ? "" : ", ERR: " + taskResponse.getErrorMessage()));
}
nrr.getRequestParameters().put(PcConstants.NODE_REQUEST_STATUS, SingleTargetTaskStatus.COMPLETED.toString());
if (task.getConfig().getHandlerExecutionLocation() == HandlerExecutionLocation.MANAGER && task != null && task.getHandler() != null) {
try {
// logger.debug("HANDLE In manager: " +
// taskResponse.getHost());
task.getHandler().onCompleted(taskResponse, task.getResponseContext());
} catch (Exception t) {
logger.error("Error handling onCompleted in manager for response: {} Error {}", taskResponse.toString(), t.getLocalizedMessage());
}
}
if (!task.getConfig().isSaveResponseToTask()) {
taskResponse.setResponseContent(PcConstants.NOT_SAVED);
taskResponse.setResponseHeaders(null);
logger.debug("Erased single task response content and response headers to save space.");
}
if (this.responseCount == this.requestCount) {
if (wasIssuedCancel) {
ExecutionManagerExecutionException exCanceled = new ExecutionManagerExecutionException("ExecutionManager: task was canceled by user", ManagerExceptionType.CANCEL);
reply(ParallelTaskState.COMPLETED_WITH_ERROR, exCanceled);
} else {
reply(ParallelTaskState.COMPLETED_WITHOUT_ERROR, null);
}
}
// end when all requests have resonponse
} else if (message instanceof CancelTaskOnHostRequest) {
CancelTaskOnHostRequest msg = (CancelTaskOnHostRequest) message;
cancelRequestAndWorkerOnHost(msg.getTargetHosts());
} else if (message instanceof ExecutionManagerMsgType) {
switch((ExecutionManagerMsgType) message) {
// reply
case OPERATION_TIMEOUT:
cancelRequestAndWorkers();
String msg = "Execution manager timeout on whole Parallel Task.";
ExecutionManagerExecutionException ex = new ExecutionManagerExecutionException(msg, ManagerExceptionType.TIMEOUT);
logger.error(msg);
reply(ParallelTaskState.COMPLETED_WITH_ERROR, ex);
break;
// this will wait for the works to reply.
case CANCEL:
cancelRequestAndWorkers();
wasIssuedCancel = true;
break;
default:
break;
}
} else {
logger.error("Unhandled: " + message);
unhandled(message);
}
} catch (Exception t) {
logger.error("Command Manager error: " + t + " trace: ", t);
task.getTaskErrorMetas().add(new TaskErrorMeta(TaskErrorType.COMMAND_MANAGER_ERROR, t == null ? "NA" : t.getLocalizedMessage()));
reply(ParallelTaskState.COMPLETED_WITH_ERROR, t);
}
}
Example 55
Project: RestComm-master File: WSAsync.java View source code |
/**
* Adds the queryString-part of the url to the BoundRequestBuilder
*/
protected void addQueryString(BoundRequestBuilder requestBuilder) {
// AsyncHttpClient is by default encoding everything in utf-8 so for us to be able to use
// different encoding we have configured AHC to use raw urls. When using raw urls,
// AHC does not encode url and QueryParam with utf-8 - but there is another problem:
// If we send raw (none-encoded) url (with queryString) to AHC, it does not url-encode it,
// but transform all illegal chars to '?'.
// If we pre-encoded the url with QueryString before sending it to AHC, ahc will decode it, and then
// later break it with '?'.
// This method basically does the same as RequestBuilderBase.buildUrl() except from destroying the
// pre-encoding
// does url contain query_string?
int i = url.indexOf('?');
if (i > 0) {
try {
// extract query-string-part
String queryPart = url.substring(i + 1);
// parse queryPart - and decode it... (it is going to be re-encoded later)
for (String param : queryPart.split("&")) {
i = param.indexOf('=');
String name;
String value = null;
if (i <= 0) {
// only a flag
name = URLDecoder.decode(param, encoding);
} else {
name = URLDecoder.decode(param.substring(0, i), encoding);
value = URLDecoder.decode(param.substring(i + 1), encoding);
}
if (value == null) {
requestBuilder.addQueryParameter(URLEncoder.encode(name, encoding), null);
} else {
requestBuilder.addQueryParameter(URLEncoder.encode(name, encoding), URLEncoder.encode(value, encoding));
}
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Error parsing query-part of url", e);
}
}
}
Example 56
Project: restcommander-master File: WSAsync.java View source code |
/**
* Adds the queryString-part of the url to the BoundRequestBuilder
*/
protected void addQueryString(BoundRequestBuilder requestBuilder) {
// AsyncHttpClient is by default encoding everything in utf-8 so for us to be able to use
// different encoding we have configured AHC to use raw urls. When using raw urls,
// AHC does not encode url and QueryParam with utf-8 - but there is another problem:
// If we send raw (none-encoded) url (with queryString) to AHC, it does not url-encode it,
// but transform all illegal chars to '?'.
// If we pre-encoded the url with QueryString before sending it to AHC, ahc will decode it, and then
// later break it with '?'.
// This method basically does the same as RequestBuilderBase.buildUrl() except from destroying the
// pre-encoding
// does url contain query_string?
int i = url.indexOf('?');
if (i > 0) {
try {
// extract query-string-part
String queryPart = url.substring(i + 1);
// parse queryPart - and decode it... (it is going to be re-encoded later)
for (String param : queryPart.split("&")) {
i = param.indexOf('=');
String name;
String value = null;
if (i <= 0) {
// only a flag
name = URLDecoder.decode(param, encoding);
} else {
name = URLDecoder.decode(param.substring(0, i), encoding);
value = URLDecoder.decode(param.substring(i + 1), encoding);
}
if (value == null) {
requestBuilder.addQueryParameter(URLEncoder.encode(name, encoding), null);
} else {
requestBuilder.addQueryParameter(URLEncoder.encode(name, encoding), URLEncoder.encode(value, encoding));
}
}
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Error parsing query-part of url", e);
}
}
}
Example 57
Project: buttercoin-java-master File: Buttercoin.java View source code |
@Override
public ListenableFuture<Orders> getOrders(long timestamp, Order.Side side, Iterable<Order.Status> status, Iterable<Order.OrderType> orderTypes, int page, int pageSize) {
AsyncHttpClient.BoundRequestBuilder builder = httpClient.prepareGet(baseUrl + "/v1/orders").addHeader("X-Buttercoin-Date", "" + timestamp);
if (side != null)
builder.addQueryParam("side", side.getName());
if (status != null && status.iterator().hasNext())
builder.addQueryParam("status", mkString(status, ","));
if (orderTypes != null && orderTypes.iterator().hasNext())
builder.addQueryParam("orderType", mkString(orderTypes, ","));
if (page > 0)
builder.addQueryParam("page", "" + page);
if (pageSize > 0)
builder.addQueryParam("pageSize", "" + pageSize);
return transform(new ListenableFutureAdapter<>(builder.setSignatureCalculator(signatureCalculator()).execute(new ThrowOnHttpFailure())), new MapResponseJson<>(objectMapper.reader(Orders.class)));
}
Example 58
Project: sonatype-aether-master File: AsyncRepositoryConnector.java View source code |
public void run() { download.setState(Transfer.State.ACTIVE); final String uri = validateUri(path); final DefaultTransferResource transferResource = new DefaultTransferResource(repository.getUrl(), path, file, download.getTrace()); final boolean ignoreChecksum = RepositoryPolicy.CHECKSUM_POLICY_IGNORE.equals(checksumPolicy); CompletionHandler completionHandler = null; final FileLockCompanion fileLockCompanion = (file != null) ? createOrGetTmpFile(file.getPath(), allowResumable) : new FileLockCompanion(null, null); try { long length = 0; if (fileLockCompanion.getFile() != null) { fileProcessor.mkdirs(fileLockCompanion.getFile().getParentFile()); } // Position the file to the end in case we are resuming an aborded download. final RandomAccessFile resumableFile = fileLockCompanion.getFile() == null ? null : new RandomAccessFile(fileLockCompanion.getFile(), "rw"); if (resumableFile != null) { length = resumableFile.length(); } FluentCaseInsensitiveStringsMap headers = new FluentCaseInsensitiveStringsMap(); if (!useCache) { headers.add("Pragma", "no-cache"); } headers.add("Accept", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"); headers.replaceAll(AsyncRepositoryConnector.this.headers); Request request = null; final AtomicInteger maxRequestTry = new AtomicInteger(); AsyncHttpClient client = httpClient; final AtomicBoolean closeOnComplete = new AtomicBoolean(false); /** * If length > 0, it means we are resuming a interrupted download. If that's the case, * we can't re-use the current httpClient because compression is enabled, and supporting * compression per request is not supported in ahc and may never has it could have * a performance impact. */ if (length > 0) { AsyncHttpClientConfig config = createConfig(session, repository, false); client = new AsyncHttpClient(new NettyAsyncHttpProvider(config)); request = client.prepareGet(uri).setRangeOffset(length).setHeaders(headers).build(); closeOnComplete.set(true); } else { request = httpClient.prepareGet(uri).setHeaders(headers).build(); } final Request activeRequest = request; final AsyncHttpClient activeHttpClient = client; completionHandler = new CompletionHandler(transferResource, httpClient, logger, RequestType.GET) { private final AtomicBoolean handleTmpFile = new AtomicBoolean(true); private final AtomicBoolean localException = new AtomicBoolean(false); /** * {@inheritDoc} */ @Override public STATE onHeadersReceived(final HttpResponseHeaders headers) throws Exception { FluentCaseInsensitiveStringsMap h = headers.getHeaders(); String rangeByteValue = h.getFirstValue("Content-Range"); // Make sure the server acceptance of the range requests headers if (rangeByteValue != null && rangeByteValue.compareToIgnoreCase("none") != 0) { resumableFile.seek(resumableFile.length()); } else { resumableFile.seek(0); } return super.onHeadersReceived(headers); } @Override public void onThrowable(Throwable t) { boolean resume = false; try { logger.debug("onThrowable", t); /** * If an IOException occurs, let's try to resume the request based on how much bytes has * been so far downloaded. Fail after IOException. */ try { if (!disableResumeSupport && !localException.get() && maxRequestTry.get() < maxIOExceptionRetry && isResumeWorthy(t)) { logger.debug("Trying to recover from an IOException " + activeRequest); maxRequestTry.incrementAndGet(); Request newRequest = new RequestBuilder(activeRequest).setRangeOffset(resumableFile.length()).build(); activeHttpClient.executeRequest(newRequest, this); resume = true; return; } } catch (Throwable rt) { logger.warn("Could not resume download", rt); } localException.set(false); if (Exception.class.isAssignableFrom(t.getClass())) { exception = Exception.class.cast(t); } else { exception = new Exception(t); } if (closeOnComplete.get()) { activeHttpClient.close(); } super.onThrowable(t); fireTransferFailed(); } catch (Throwable ex) { logger.warn("Unexpected exception", ex); } finally { if (resume) { return; } if (resumableFile != null) { try { resumableFile.close(); } catch (IOException ex) { } } deleteFile(fileLockCompanion); latch.countDown(); removeListeners(); } } private void removeListeners() { removeTransferListener(listener); } public STATE onBodyPartReceived(final HttpResponseBodyPart content) throws Exception { if (status() != null && (status().getStatusCode() == 200 || status().getStatusCode() == 206)) { byte[] bytes = content.getBodyPartBytes(); try { resumableFile.write(bytes); } catch (IOException ex) { logger.debug("onBodyPartReceived", ex); exception = ex; localException.set(true); throw ex; } } return super.onBodyPartReceived(content); } @Override public Response onCompleted(Response r) throws Exception { try { deleteFile.set(true); try { resumableFile.close(); } catch (IOException ex) { } final Response response = super.onCompleted(r); handleResponseCode(uri, response.getStatusCode(), response.getStatusText()); if (!ignoreChecksum) { activeHttpClient.getConfig().executorService().execute(new Runnable() { public void run() { try { try { Map<String, Object> checksums = ChecksumUtils.calc(fileLockCompanion.getFile(), checksumAlgos.keySet()); if (!verifyChecksum(file, uri, (String) checksums.get("SHA-1"), ".sha1") && !verifyChecksum(file, uri, (String) checksums.get("MD5"), ".md5")) { throw new ChecksumFailureException("Checksum validation failed" + ", no checksums available from the repository"); } } catch (ChecksumFailureException e) { if (RepositoryPolicy.CHECKSUM_POLICY_FAIL.equals(checksumPolicy)) { throw e; } if (listener != null) { listener.transferCorrupted(newEvent(transferResource, e, RequestType.GET, EventType.CORRUPTED)); } } } catch (Exception ex) { exception = ex; } finally { if (exception == null) { try { rename(fileLockCompanion.getFile(), file); releaseLock(fileLockCompanion); } catch (IOException e) { exception = e; } } else { deleteFile(fileLockCompanion); } latch.countDown(); if (closeOnComplete.get()) { activeHttpClient.close(); } } } }); } else { rename(fileLockCompanion.getFile(), file); releaseLock(fileLockCompanion); handleTmpFile.set(false); // asyncHttpClient.close may takes time before all connections get closed. // We unlatch first. latch.countDown(); if (closeOnComplete.get()) { activeHttpClient.close(); } } removeListeners(); return response; } catch (Exception ex) { exception = ex; localException.set(true); throw ex; } finally { try { if (handleTmpFile.get() && fileLockCompanion.getFile() != null) { if (exception != null) { deleteFile(fileLockCompanion); } else if (ignoreChecksum) { rename(fileLockCompanion.getFile(), file); releaseLock(fileLockCompanion); } } } catch (IOException ex) { exception = ex; } } } }; try { if (file == null) { if (!resourceExist(uri)) { throw new ResourceDoesNotExistException("Could not find " + uri + " in " + repository.getUrl()); } latch.countDown(); } else { if (listener != null) { completionHandler.addTransferListener(listener); listener.transferInitiated(newEvent(transferResource, null, RequestType.GET, EventType.INITIATED)); } activeHttpClient.executeRequest(request, completionHandler); } } catch (Exception ex) { try { if (resumableFile != null) { resumableFile.close(); } } catch (IOException ex2) { } deleteFile(fileLockCompanion); exception = ex; latch.countDown(); } } catch (Throwable t) { deleteFile(fileLockCompanion); try { if (Exception.class.isAssignableFrom(t.getClass())) { exception = Exception.class.cast(t); } else { exception = new Exception(t); } if (listener != null) { listener.transferFailed(newEvent(transferResource, exception, RequestType.GET, EventType.FAILED)); } } finally { latch.countDown(); } } }
Example 59
Project: deft-master File: DeftSystemTest.java View source code |
//ning === http://github.com/ning/async-http-client @Test public void doSimpleAsyncRequestTestWithNing() throws IOException, InterruptedException { int iterations = 100; final CountDownLatch latch = new CountDownLatch(iterations); AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); for (int i = 1; i <= iterations; i++) { asyncHttpClient.prepareGet("http://localhost:" + PORT + "/").execute(new AsyncCompletionHandler<com.ning.http.client.Response>() { @Override public com.ning.http.client.Response onCompleted(com.ning.http.client.Response response) throws Exception { String body = response.getResponseBody(); assertEquals(expectedPayload, body); { List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Etag", "Connection" }); assertEquals(200, response.getStatusCode()); assertEquals(expectedHeaders.size(), response.getHeaders().size()); for (String header : expectedHeaders) { assertTrue(response.getHeader(header) != null); } assertEquals(expectedPayload.length() + "", response.getHeader("Content-Length")); } latch.countDown(); return response; } @Override public void onThrowable(Throwable t) { assertTrue(false); } }); } latch.await(15 * 1000, TimeUnit.MILLISECONDS); assertEquals(0, latch.getCount()); }
Example 60
Project: futuristic-master File: NingHttpAsyncEngineTest.java View source code |
@Override protected HttpAsyncEngine createHttpAsyncEngine() { AsyncHttpClient client = new AsyncHttpClient(); return new NingHttpAsyncEngine(client); }
Example 61
Project: sumologic-kinesis-connector-master File: SumologicSender.java View source code |
private BoundRequestBuilder clientPreparePost(String url) {
if (this.client.isClosed()) {
Builder builder = new AsyncHttpClientConfig.Builder();
this.client = new AsyncHttpClient(builder.build());
}
return this.client.preparePost(url);
}
Example 62
Project: jooby-master File: Issue636.java View source code |
@Before
public void before() {
client = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().build());
}
Example 63
Project: async-rest-client-master File: NingRestClient.java View source code |
@Override
public AsyncHttpClient getUnderlying() {
return asyncHttpClient;
}
Example 64
Project: legacy-jclouds-master File: NingHttpCommandExecutorServiceModule.java View source code |
@Singleton @Provides AsyncHttpClient provideNingClient() { AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setFollowRedirects(true).build(); return new AsyncHttpClient(config); }
Example 65
Project: parseq-master File: HttpClient.java View source code |
/**
* Returns raw http client. If client has not been initialized yet
* then new client is created with default configuration.
* @return raw http client
*/
public static synchronized AsyncHttpClient getNingClient() {
if (_client.get() == null) {
initialize(new AsyncHttpClientConfig.Builder().build());
}
return _client.get();
}
Example 66
Project: dockerhub-notification-plugin-master File: Http.java View source code |
public static int post(@Nonnull final String url, @Nonnull final JSONObject data) throws IOException, ExecutionException, InterruptedException {
AsyncHttpClient httpClient = AHC.instance();
ListenableFuture<Response> execute = httpClient.preparePost(url).setBodyEncoding("UTF-8").setHeader("Content-Type", "application/json; charset=UTF-8").setBody(data.toString()).execute();
return execute.get().getStatusCode();
}
Example 67
Project: Android-kakaologin-gradle-sample-master File: HttpRequestTask.java View source code |
private static AsyncHttpClient newAsyncHttpClient() { // return new AsyncHttpClient(new GrizzlyAsyncHttpProvider(asyncHttpClientConfig), asyncHttpClientConfig); return new AsyncHttpClient(new SimpleAsyncHttpProvider(asyncHttpClientConfig), asyncHttpClientConfig); }
Example 68
Project: thundr-http-ning-master File: HttpServiceNing.java View source code |
AsyncHttpClient createHttpClient() { return new AsyncHttpClient(config); }
Example 69
Project: jersey-new-relic-master File: FullStackTest.java View source code |
@Before
public void setUp() throws Exception {
LogManager.getLogManager().reset();
SLF4JBridgeHandler.install();
wrapper = new StubNewRelicWrapper();
httpClient = new AsyncHttpClient();
}
Example 70
Project: milton-master File: GrizzlyLoadBalancer.java View source code |
private void forwardToCluster(Request request, Response response) { // AsyncHttpClient c = new AsyncHttpClient(); // c.prepareGet(null) }
Example 71
Project: milton2-master File: GrizzlyLoadBalancer.java View source code |
private void forwardToCluster(Request request, Response response) { // AsyncHttpClient c = new AsyncHttpClient(); // c.prepareGet(null) }
Example 72
Project: traccar-master File: Context.java View source code |
public static AsyncHttpClient getAsyncHttpClient() {
return ASYNC_HTTP_CLIENT;
}
Example 73
Project: jersey-1.x-old-master File: NonBlockingClientHandler.java View source code |
public AsyncHttpClient getHttpClient() {
return client;
}
Example 74
Project: oneapi-java-master File: OneAPIBaseClientImpl.java View source code |
/** * Get asynchronous http client */ private AsyncHttpClient getAsyncHttpClient() { if (asyncHttpClient == null) { asyncHttpClient = new AsyncHttpClient(); } return asyncHttpClient; }
Example 75
Project: openhab1-addons-master File: MiosUnitConnector.java View source code |
private AsyncHttpClient getAsyncHttpClient() {
return client;
}
Example 76
Project: zendesk-java-client-master File: Zendesk.java View source code |
public Builder setClient(AsyncHttpClient client) {
this.client = client;
return this;
}