private HttpClientOptions getHttpClientOptions() { HttpClientOptions options = new HttpClientOptions(); options.setThreadPrefix("atlassian-connect"); options.setMaxConnectionsPerHost(100); options.setUserAgent("Atlassian-Connect/" + pluginRetrievalService.getPlugin().getPluginInformation().getVersion()); options.setConnectionTimeout(3, TimeUnit.SECONDS); options.setSocketTimeout(5, TimeUnit.SECONDS); options.setRequestTimeout(10, TimeUnit.SECONDS); options.setLeaseTimeout(TimeUnit.SECONDS.toMillis(3)); return options; } }
private ExecutorService defaultCallbackExecutor() { ThreadFactory threadFactory = ThreadFactories.namedThreadFactory(getThreadPrefix() + "-callbacks", ThreadFactories.Type.DAEMON); return new ThreadPoolExecutor( 0, getMaxCallbackThreadPoolSize(), 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(threadWorkQueueLimit), threadFactory, (r, e) -> log.warn( "Exceeded the limit of requests waiting for execution. " + " Increase the value of the system property {} to prevent these situations in the " + "future. Current value of {} = {}.", OPTION_THREAD_WORK_QUEUE_LIMIT, OPTION_THREAD_WORK_QUEUE_LIMIT, threadWorkQueueLimit) ); }
private HttpClientOptions getHttpOptions(HipChatConfigurationManager hipChatConfigurationManager) { HttpClientOptions options = new HttpClientOptions(); options.setThreadPrefix("hipchat-client"); options.setRequestPreparer(new HipChatHttpClientRequestPreparer(hipChatConfigurationManager)); return options; }
.setIoThreadCount(options.getIoThreadCount()) .setSelectInterval(options.getIoSelectInterval()) .setInterestOpQueued(true) .build(); List<String> bannedAddresses = options.getBlacklistedAddresses(); HostResolver resolver; if (bannedAddresses.isEmpty()) { DefaultSchemePortResolver.INSTANCE, resolver::resolve, options.getConnectionPoolTimeToLive(), TimeUnit.MILLISECONDS) { @SuppressWarnings("MethodDoesntCallSuperMethod") .setConnectTimeout((int) options.getConnectionTimeout()) .setConnectionRequestTimeout((int) options.getLeaseTimeout()) .setCookieSpec(options.getIgnoreCookies() ? CookieSpecs.IGNORE_COOKIES : CookieSpecs.DEFAULT) .setSocketTimeout((int) options.getSocketTimeout()) .build(); connectionManager.setDefaultMaxPerRoute(options.getMaxConnectionsPerHost()); connectionManager.setMaxTotal(options.getMaxTotalConnections()); .setThreadFactory(ThreadFactories.namedThreadFactory(options.getThreadPrefix() + "-io", ThreadFactories.Type.DAEMON)) .setDefaultIOReactorConfig(reactorConfig) .setConnectionManager(connectionManager) Ints.saturatedCast(options.getMaxEntitySize()));
@Override public void onStart(WebhooksConfiguration configuration) { this.configuration = configuration; HttpClientOptions options = new HttpClientOptions(); options.setMaxCacheEntries(0); options.setIgnoreCookies(true); options.setMaxCallbackThreadPoolSize(configuration.getMaxCallbackThreads()); options.setMaxConnectionsPerHost(configuration.getMaxHttpConnectionsPerHost()); options.setMaxEntitySize(configuration.getMaxResponseBodySize()); options.setConnectionPoolTimeToLive(1, TimeUnit.MINUTES); options.setMaxTotalConnections(configuration.getMaxHttpConnections()); options.setConnectionTimeout(toSeconds(configuration.getConnectionTimeout()), TimeUnit.SECONDS); options.setSocketTimeout(toSeconds(configuration.getSocketTimeout()), TimeUnit.SECONDS); options.setIoThreadCount(configuration.getIoThreadCount()); options.setBlacklistedAddresses(configuration.getBlacklistedAddresses()); client = httpClientFactory.create(options); }
ioReactorConfig.setIoThreadCount(options.getIoThreadCount()); ioReactorConfig.setSelectInterval(options.getIoSelectInterval()); ioReactorConfig.setInterestOpQueued(true); DefaultConnectingIOReactor reactor = new DefaultConnectingIOReactor( ioReactorConfig, ThreadFactories.namedThreadFactory(options.getThreadPrefix() + "-io", ThreadFactories.Type.DAEMON)); reactor.setExceptionHandler(new IOReactorExceptionHandler() AsyncSchemeRegistryFactory.createDefault(), options.getConnectionPoolTimeToLive(), options.getLeaseTimeout(), TimeUnit.MILLISECONDS) connmgr.setDefaultMaxPerRoute(options.getMaxConnectionsPerHost()); throw new RuntimeException("Reactor " + options.getThreadPrefix() + "not set up correctly", e); HttpConnectionParams.setConnectionTimeout(params, (int) options.getConnectionTimeout()); HttpConnectionParams.setSoTimeout(params, (int) options.getSocketTimeout()); HttpConnectionParams.setSocketBufferSize(params, 8 * 1024); HttpConnectionParams.setTcpNoDelay(params, true); cacheConfig.setMaxCacheEntries(options.getMaxCacheEntries()); cacheConfig.setSharedCache(false); cacheConfig.setMaxObjectSize(options.getMaxCacheObjectSize()); cacheConfig.setNeverCache1_0ResponsesWithQueryString(false); httpClient = new CachingHttpAsyncClient(client, httpCacheStorage, cacheConfig); callbackExecutor = httpClientOptions.getCallbackExecutor(); httpClient.start();
.setIoThreadCount(options.getIoThreadCount()) .setSelectInterval(options.getIoSelectInterval()) .setInterestOpQueued(true) .build(); DefaultSchemePortResolver.INSTANCE, SystemDefaultDnsResolver.INSTANCE, options.getConnectionPoolTimeToLive(), TimeUnit.MILLISECONDS) connectionManager.setDefaultMaxPerRoute(options.getMaxConnectionsPerHost()); .setConnectTimeout((int) options.getConnectionTimeout()) .setConnectionRequestTimeout((int) options.getLeaseTimeout()) .setCookieSpec(options.getIgnoreCookies() ? CookieSpecs.IGNORE_COOKIES : CookieSpecs.DEFAULT) .setSocketTimeout((int) options.getSocketTimeout()) .build(); .setThreadFactory(ThreadFactories.namedThreadFactory(options.getThreadPrefix() + "-io", ThreadFactories.Type.DAEMON)) .setDefaultIOReactorConfig(reactorConfig) .setConnectionManager(connectionManager) this.callbackExecutor = options.getCallbackExecutor(); nonCachingHttpClient.start(); throw new RuntimeException("Reactor " + options.getThreadPrefix() + "not set up correctly", e);
public static DefaultHttpClient<Void> createDefaultHttpClient(final String baseUrl) { final HttpClientOptions opts = new HttpClientOptions(); final int timeout = 120; opts.setSocketTimeout(timeout, TimeUnit.SECONDS); opts.setConnectionTimeout(timeout, TimeUnit.SECONDS); opts.setRequestTimeout(timeout, TimeUnit.SECONDS); return new DefaultHttpClient<Void>(new VoidEventPublisher(), new ApplicationPropertiesImpl(baseUrl), ThreadLocalContextManagers.<Void> noop(), opts); }
public ApacheAsyncHttpClient(EventPublisher eventConsumer, ApplicationProperties applicationProperties, ThreadLocalContextManager<C> threadLocalContextManager) { this(eventConsumer, applicationProperties, threadLocalContextManager, new HttpClientOptions()); }
final HttpClientOptions options = new HttpClientOptions(); options.setRequestTimeout(readTimeout, TimeUnit.SECONDS); options.setSocketTimeout(timeout, TimeUnit.SECONDS); options.setCallbackExecutor(executorService);
@SuppressWarnings("unchecked") public DisposableHttpClient createClient(final URI serverUri, final AuthenticationHandler authenticationHandler) { final HttpClientOptions options = new HttpClientOptions(); options.setRequestPreparer(new Effect<Request>() { @Override public void apply(final Request request) { authenticationHandler.configure(request); } }); final DefaultHttpClient defaultHttpClient = new DefaultHttpClient(new NoOpEventPublisher(), new RestClientApplicationProperties(serverUri), ThreadLocalContextManagers.noop(), options); return new AtlassianHttpClientDecorator(defaultHttpClient) { @Override public void destroy() throws Exception { defaultHttpClient.destroy(); } }; }
public ApacheAsyncHttpClient(String applicationName) { this(applicationName, new HttpClientOptions()); }
private HttpClientOptions getHttpClientOptions() { HttpClientOptions options = new HttpClientOptions(); options.setThreadPrefix("atlassian-connect"); options.setMaxConnectionsPerHost(productAccessor.getMaxHttpConnectionsPerHost()); options.setUserAgent("Atlassian-Connect/" + pluginRetrievalService.getPlugin().getPluginInformation().getVersion()); options.setConnectionTimeout(productAccessor.getHttpConnectionTimeoutSeconds(), TimeUnit.SECONDS); options.setSocketTimeout(productAccessor.getHttpSocketTimeoutSeconds(), TimeUnit.SECONDS); options.setRequestTimeout(productAccessor.getHttpRequestTimeoutSeconds(), TimeUnit.SECONDS); options.setLeaseTimeout(TimeUnit.SECONDS.toMillis(productAccessor.getPluginHttpLeaseTimeoutSeconds())); return options; } }
public ApacheAsyncHttpClient(String applicationName) { this(applicationName, new HttpClientOptions()); }
@Override public JiraRestClient create(final URI serverUri, final AuthenticationHandler authenticationHandler) { final DisposableHttpClient httpClient = createClient(serverUri, authenticationHandler, new HttpClientOptions()); return new AsynchronousJiraRestClient( serverUri, httpClient); }
public ApacheAsyncHttpClient(EventPublisher eventConsumer, ApplicationProperties applicationProperties, ThreadLocalContextManager<C> threadLocalContextManager, HttpClientOptions options) { this(new DefaultApplicationNameSupplier(applicationProperties), new EventConsumerFunction(eventConsumer), threadLocalContextManager, options); }
public ApacheAsyncHttpClient(EventPublisher eventConsumer, ApplicationProperties applicationProperties, ThreadLocalContextManager<C> threadLocalContextManager, HttpClientOptions options) { this(new DefaultApplicationNameSupplier(applicationProperties), new EventConsumerFunction(eventConsumer), threadLocalContextManager, options); }
@SuppressWarnings("unchecked") public DisposableHttpClient createClient(final URI serverUri, final AuthenticationHandler authenticationHandler) { final HttpClientOptions options = new HttpClientOptions(); final DefaultHttpClientFactory defaultHttpClientFactory = new DefaultHttpClientFactory(new NoOpEventPublisher(), new RestClientApplicationProperties(serverUri), new ThreadLocalContextManager() { @Override public Object getThreadLocalContext() { return null; } @Override public void setThreadLocalContext(Object context) { } @Override public void clearThreadLocalContext() { } }); final HttpClient httpClient = defaultHttpClientFactory.create(options); return new AtlassianHttpClientDecorator(httpClient, authenticationHandler) { @Override public void destroy() throws Exception { defaultHttpClientFactory.dispose(httpClient); } }; }