diff --git a/pom.xml b/pom.xml index 6371e5da85..1f931f00fa 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,6 @@ 2.6.10 1.3 - 4.5.12 2.2.11 1.6.1 @@ -418,11 +417,6 @@ velocity-engine-core ${velocity.version} - - org.apache.httpcomponents - httpclient - ${httpclient.version} - diff --git a/whois-scheduler/pom.xml b/whois-scheduler/pom.xml index 0fabae3db6..a3218d7867 100644 --- a/whois-scheduler/pom.xml +++ b/whois-scheduler/pom.xml @@ -27,10 +27,6 @@ org.jsoup jsoup - - org.apache.httpcomponents - httpclient - diff --git a/whois-scheduler/src/main/java/net/ripe/db/whois/scheduler/task/grs/LacnicGrsSource.java b/whois-scheduler/src/main/java/net/ripe/db/whois/scheduler/task/grs/LacnicGrsSource.java index 98b7964afb..f797d11190 100644 --- a/whois-scheduler/src/main/java/net/ripe/db/whois/scheduler/task/grs/LacnicGrsSource.java +++ b/whois-scheduler/src/main/java/net/ripe/db/whois/scheduler/task/grs/LacnicGrsSource.java @@ -16,18 +16,15 @@ import net.ripe.db.whois.common.rpsl.transform.FilterChangedFunction; import net.ripe.db.whois.common.source.SourceContext; import org.apache.commons.io.IOUtils; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.client.methods.RequestBuilder; -import org.apache.http.config.SocketConfig; -import org.apache.http.impl.client.HttpClients; +import org.glassfish.jersey.client.ClientProperties; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -50,6 +47,8 @@ class LacnicGrsSource extends GrsSource { private final String userId; private final String password; + private Client client; + @Autowired LacnicGrsSource( @Value("${grs.import.lacnic.source:}") final String source, @@ -63,12 +62,17 @@ class LacnicGrsSource extends GrsSource { this.userId = userId; this.password = password; + + this.client = ClientBuilder.newBuilder() + .property(ClientProperties.CONNECT_TIMEOUT, TIMEOUT) + .property(ClientProperties.READ_TIMEOUT, TIMEOUT) + .build(); } @Override public void acquireDump(final Path path) throws IOException { - final Document loginPage = parse(get("http://lacnic.net/cgi-bin/lacnic/stini?lg=EN")); - final String loginAction = "http://lacnic.net" + loginPage.select("form").attr("action"); + final Document loginPage = parse(get("https://lacnic.net/cgi-bin/lacnic/stini?lg=EN")); + final String loginAction = "https://lacnic.net" + loginPage.select("form").attr("action"); post(loginAction); @@ -77,38 +81,16 @@ public void acquireDump(final Path path) throws IOException { downloader.downloadTo(logger, new URL(downloadAction), path); } - private String get(final String url) throws IOException { - final HttpClient client = HttpClients - .custom() - .setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(TIMEOUT).build()) - .build(); - final HttpUriRequest request = RequestBuilder - .get() - .setUri(url) - .setConfig(RequestConfig.custom().setConnectTimeout(TIMEOUT).build()) - .build(); - return IOUtils.toString( - client.execute(request) - .getEntity() - .getContent()); + private String get(final String url) { + return client.target(url).request().get(String.class); } - private String post(final String url) throws IOException { - final HttpClient client = HttpClients - .custom() - .setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(TIMEOUT).build()) - .build(); - final HttpUriRequest request = RequestBuilder - .post() - .addParameter("handle", userId) - .addParameter("passwd", password) - .setUri(url) - .setConfig(RequestConfig.custom().setConnectTimeout(TIMEOUT).build()) - .build(); - return IOUtils.toString( - client.execute(request) - .getEntity() - .getContent()); + private String post(final String url) { + return client.target(url) + .queryParam("handle", userId) + .queryParam("passwd", password) + .request() + .post(null, String.class); } private static Document parse(final String data) { diff --git a/whois-scheduler/src/test/java/net/ripe/db/whois/scheduler/task/grs/GrsImporterLacnicManualIntegrationTest.java b/whois-scheduler/src/test/java/net/ripe/db/whois/scheduler/task/grs/GrsImporterLacnicManualIntegrationTest.java index aed6b1fdb1..840d124614 100644 --- a/whois-scheduler/src/test/java/net/ripe/db/whois/scheduler/task/grs/GrsImporterLacnicManualIntegrationTest.java +++ b/whois-scheduler/src/test/java/net/ripe/db/whois/scheduler/task/grs/GrsImporterLacnicManualIntegrationTest.java @@ -19,7 +19,6 @@ import org.springframework.test.annotation.DirtiesContext; import java.io.File; -import java.io.IOException; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -43,7 +42,7 @@ public class GrsImporterLacnicManualIntegrationTest extends AbstractSchedulerInt private static final File tempDirectory = Files.createTempDir(); @BeforeClass - public static void setup_database() throws IOException { + public static void setup_database() { DatabaseHelper.addGrsDatabases("LACNIC-GRS"); System.setProperty("grs.import.lacnic.source", "LACNIC-GRS"); @@ -55,7 +54,7 @@ public static void setup_database() throws IOException { } @AfterClass - public static void cleanup() throws Exception { + public static void cleanup() { FileHelper.delete(tempDirectory); } @@ -76,7 +75,7 @@ public void import_lacnic_grs_download_dump() throws Exception { } @Test - public void import_lacnic_grs_use_downloaded_dump() throws Exception { + public void import_lacnic_grs_use_downloaded_dump() { grsSourceImporter.grsImport(lacnicGrsSource, false); assertThat(query("-s LACNIC-GRS SOME-MNT"), containsString("mntner: SOME-MNT")); @@ -90,7 +89,7 @@ private void awaitAll(final List futures) throws ExecutionException, Int } } - private String query(final String query) throws Exception { + private String query(final String query) { return TelnetWhoisClient.queryLocalhost(QueryServer.port, query); } }