src/main/java/org/embulk/input/jira/util/JiraUtil.java in embulk-input-jira-0.2.7 vs src/main/java/org/embulk/input/jira/util/JiraUtil.java in embulk-input-jira-0.2.8

- old
+ new

@@ -1,9 +1,15 @@ package org.embulk.input.jira.util; import com.google.gson.JsonElement; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.embulk.config.ConfigException; import org.embulk.input.jira.Issue; import org.embulk.input.jira.JiraInputPlugin.PluginTask; import org.embulk.spi.Column; import org.embulk.spi.ColumnConfig; @@ -15,19 +21,18 @@ import org.embulk.spi.time.TimestampParser; import javax.ws.rs.core.UriBuilder; import java.io.IOException; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.List; import java.util.stream.Collectors; import java.util.stream.StreamSupport; import static com.google.common.base.Strings.isNullOrEmpty; import static org.embulk.input.jira.Constant.CREDENTIAL_URI_PATH; import static org.embulk.input.jira.Constant.DEFAULT_TIMESTAMP_PATTERN; +import static org.embulk.input.jira.Constant.HTTP_TIMEOUT; import static org.embulk.input.jira.Constant.SEARCH_URI_PATH; public final class JiraUtil { private JiraUtil() {} @@ -59,23 +64,24 @@ } String uri = task.getUri(); if (isNullOrEmpty(uri)) { throw new ConfigException("JIRA API endpoint could not be empty"); } - HttpURLConnection connection = null; - try { - URL u = new URL(uri); - connection = (HttpURLConnection) u.openConnection(); - connection.setRequestMethod("GET"); - connection.getResponseCode(); + try (CloseableHttpClient client = HttpClientBuilder.create() + .setDefaultRequestConfig(RequestConfig.custom() + .setConnectTimeout(HTTP_TIMEOUT) + .setConnectionRequestTimeout(HTTP_TIMEOUT) + .setSocketTimeout(HTTP_TIMEOUT) + .setCookieSpec(CookieSpecs.STANDARD) + .build()) + .build()) { + HttpGet request = new HttpGet(uri); + try (CloseableHttpResponse response = client.execute(request)) { + response.getStatusLine().getStatusCode(); + } } - catch (IOException e) { + catch (IOException | IllegalArgumentException e) { throw new ConfigException("JIRA API endpoint is incorrect or not available"); - } - finally { - if (connection != null) { - connection.disconnect(); - } } int retryInitialWaitSec = task.getInitialRetryIntervalMillis(); if (retryInitialWaitSec < 1) { throw new ConfigException("Initial retry delay should be equal or greater than 1"); }