private HttpConnector(Builder builder) { this.baseUrl = HttpUrl.parse(builder.url.endsWith("/") ? builder.url : format("%s/", builder.url)); checkArgument(this.baseUrl != null, "Malformed URL: '%s'", builder.url); OkHttpClientBuilder okHttpClientBuilder = new OkHttpClientBuilder(); okHttpClientBuilder.setUserAgent(builder.userAgent); if (!isNullOrEmpty(builder.login)) { // password is null when login represents an access token. In this case // the Basic credentials consider an empty password. okHttpClientBuilder.setCredentials(Credentials.basic(builder.login, nullToEmpty(builder.password), UTF_8)); } this.systemPassCode = builder.systemPassCode; okHttpClientBuilder.setProxy(builder.proxy); okHttpClientBuilder.setProxyLogin(builder.proxyLogin); okHttpClientBuilder.setProxyPassword(builder.proxyPassword); okHttpClientBuilder.setConnectTimeoutMs(builder.connectTimeoutMs); okHttpClientBuilder.setReadTimeoutMs(builder.readTimeoutMs); okHttpClientBuilder.setSSLSocketFactory(builder.sslSocketFactory); okHttpClientBuilder.setTrustManager(builder.sslTrustManager); this.okHttpClient = okHttpClientBuilder.build(); this.noRedirectOkHttpClient = newClientWithoutRedirect(this.okHttpClient); }
/** * @return a {@link OkHttpClient} singleton */ public OkHttpClient provide(Configuration config, SonarRuntime runtime) { if (okHttpClient == null) { OkHttpClientBuilder builder = new OkHttpClientBuilder(); builder.setConnectTimeoutMs(DEFAULT_CONNECT_TIMEOUT_IN_MS); builder.setReadTimeoutMs(DEFAULT_READ_TIMEOUT_IN_MS); // no need to define proxy URL as system-wide proxy is used and properly // configured by bootstrap process. builder.setProxyLogin(config.get(HTTP_PROXY_USER.getKey()).orElse(null)); builder.setProxyPassword(config.get(HTTP_PROXY_PASSWORD.getKey()).orElse(null)); builder.setUserAgent(format("SonarQube/%s", runtime.getApiVersion().toString())); okHttpClient = builder.build(); } return okHttpClient; } }
@Test public void build_throws_IAE_if_connect_timeout_is_negative() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Connect timeout must be positive. Got -10"); underTest.setConnectTimeoutMs(-10); }
private HttpConnector(Builder builder) { this.baseUrl = HttpUrl.parse(builder.url.endsWith("/") ? builder.url : format("%s/", builder.url)); checkArgument(this.baseUrl != null, "Malformed URL: '%s'", builder.url); OkHttpClientBuilder okHttpClientBuilder = new OkHttpClientBuilder(); okHttpClientBuilder.setUserAgent(builder.userAgent); if (!isNullOrEmpty(builder.login)) { // password is null when login represents an access token. In this case // the Basic credentials consider an empty password. okHttpClientBuilder.setCredentials(Credentials.basic(builder.login, nullToEmpty(builder.password), UTF_8)); } this.systemPassCode = builder.systemPassCode; okHttpClientBuilder.setProxy(builder.proxy); okHttpClientBuilder.setProxyLogin(builder.proxyLogin); okHttpClientBuilder.setProxyPassword(builder.proxyPassword); okHttpClientBuilder.setConnectTimeoutMs(builder.connectTimeoutMs); okHttpClientBuilder.setReadTimeoutMs(builder.readTimeoutMs); okHttpClientBuilder.setSSLSocketFactory(builder.sslSocketFactory); okHttpClientBuilder.setTrustManager(builder.sslTrustManager); this.okHttpClient = okHttpClientBuilder.build(); this.noRedirectOkHttpClient = newClientWithoutRedirect(this.okHttpClient); }
/** * @return a {@link OkHttpClient} singleton */ public OkHttpClient provide(Configuration config, SonarRuntime runtime) { if (okHttpClient == null) { OkHttpClientBuilder builder = new OkHttpClientBuilder(); builder.setConnectTimeoutMs(DEFAULT_CONNECT_TIMEOUT_IN_MS); builder.setReadTimeoutMs(DEFAULT_READ_TIMEOUT_IN_MS); // no need to define proxy URL as system-wide proxy is used and properly // configured by bootstrap process. builder.setProxyLogin(config.get(HTTP_PROXY_USER.getKey()).orElse(null)); builder.setProxyPassword(config.get(HTTP_PROXY_PASSWORD.getKey()).orElse(null)); builder.setUserAgent(format("SonarQube/%s", runtime.getApiVersion().toString())); okHttpClient = builder.build(); } return okHttpClient; } }