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");
}