diff --git a/webapp/lib/fluent-hc-4.2.5.jar b/webapp/lib/fluent-hc-4.2.5.jar new file mode 100644 index 000000000..2f165410b Binary files /dev/null and b/webapp/lib/fluent-hc-4.2.5.jar differ diff --git a/webapp/lib/fluent-hc-4.3.2.jar b/webapp/lib/fluent-hc-4.3.2.jar deleted file mode 100644 index 0b6288ada..000000000 Binary files a/webapp/lib/fluent-hc-4.3.2.jar and /dev/null differ diff --git a/webapp/lib/httpclient-4.2.5.jar b/webapp/lib/httpclient-4.2.5.jar new file mode 100644 index 000000000..5310588ef Binary files /dev/null and b/webapp/lib/httpclient-4.2.5.jar differ diff --git a/webapp/lib/httpclient-4.3.2.jar b/webapp/lib/httpclient-4.3.2.jar deleted file mode 100644 index 904409dac..000000000 Binary files a/webapp/lib/httpclient-4.3.2.jar and /dev/null differ diff --git a/webapp/lib/httpcore-4.2.4.jar b/webapp/lib/httpcore-4.2.4.jar new file mode 100644 index 000000000..9f45bd91c Binary files /dev/null and b/webapp/lib/httpcore-4.2.4.jar differ diff --git a/webapp/lib/httpcore-4.3.1.jar b/webapp/lib/httpcore-4.3.1.jar deleted file mode 100644 index 422cd6f5d..000000000 Binary files a/webapp/lib/httpcore-4.3.1.jar and /dev/null differ diff --git a/webapp/lib/httpmime-4.2.5.jar b/webapp/lib/httpmime-4.2.5.jar new file mode 100644 index 000000000..e63b24d70 Binary files /dev/null and b/webapp/lib/httpmime-4.2.5.jar differ diff --git a/webapp/lib/httpmime-4.3.1.jar b/webapp/lib/httpmime-4.3.1.jar deleted file mode 100644 index 2b26d7a79..000000000 Binary files a/webapp/lib/httpmime-4.3.1.jar and /dev/null differ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlGraph.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlGraph.java index 506860482..e92cf2997 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlGraph.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/dao/jena/SparqlGraph.java @@ -9,12 +9,12 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.PoolingClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import com.hp.hpl.jena.graph.BulkUpdateHandler; @@ -49,7 +49,7 @@ public class SparqlGraph implements GraphWithPerform { private String endpointURI; private String graphURI; - private CloseableHttpClient httpClient; + private HttpClient httpClient; private static final Log log = LogFactory.getLog(SparqlGraph.class); private BulkUpdateHandler bulkUpdateHandler; @@ -73,9 +73,9 @@ public class SparqlGraph implements GraphWithPerform { this.endpointURI = endpointURI; this.graphURI = graphURI; - PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); + PoolingClientConnectionManager cm = new PoolingClientConnectionManager(); cm.setDefaultMaxPerRoute(50); - this.httpClient = HttpClients.custom().setConnectionManager(cm).build(); + this.httpClient = new DefaultHttpClient(cm); } public String getEndpointURI() { @@ -97,17 +97,13 @@ public class SparqlGraph implements GraphWithPerform { meth.addHeader("Content-Type", "application/x-www-form-urlencoded"); meth.setEntity(new UrlEncodedFormEntity(Arrays.asList( new BasicNameValuePair("update", updateString)))); - CloseableHttpResponse response = httpClient.execute(meth); - try { - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode > 399) { - log.error("response " + statusCode + " to update. \n"); - throw new RuntimeException("Unable to perform SPARQL UPDATE: \n" - + updateString); - } - } finally { - response.close(); - } + HttpResponse response = httpClient.execute(meth); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode > 399) { + log.error("response " + statusCode + " to update. \n"); + throw new RuntimeException("Unable to perform SPARQL UPDATE: \n" + + updateString); + } } catch (Exception e) { throw new RuntimeException("Unable to perform SPARQL UPDATE", e); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java index e17657da6..c6d2c5004 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/sparql/RDFServiceSparql.java @@ -18,14 +18,13 @@ import java.util.concurrent.ConcurrentLinkedQueue; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.HttpResponse; import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.PoolingClientConnectionManager; import org.apache.http.message.BasicNameValuePair; import org.apache.jena.riot.RDFDataMgr; @@ -70,7 +69,7 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService { private static final Log log = LogFactory.getLog(RDFServiceImpl.class); protected String readEndpointURI; protected String updateEndpointURI; - protected CloseableHttpClient httpClient; + protected DefaultHttpClient httpClient; // the number of triples to be private static final int CHUNK_SIZE = 1000; // added/removed in a single // SPARQL UPDATE @@ -90,9 +89,9 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService { this.readEndpointURI = readEndpointURI; this.updateEndpointURI = updateEndpointURI; - PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); + PoolingClientConnectionManager cm = new PoolingClientConnectionManager(); cm.setDefaultMaxPerRoute(50); - this.httpClient = HttpClients.custom().setConnectionManager(cm).build(); + this.httpClient = new DefaultHttpClient(cm); testConnection(); } @@ -287,41 +286,38 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService { try { HttpGet meth = new HttpGet(new URIBuilder(readEndpointURI).addParameter("query", queryStr).build()); meth.addHeader("Accept", "application/sparql-results+xml"); - CloseableHttpResponse response = httpClient.execute(meth); - try { - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode > 399) { - log.error("response " + statusCode + " to query. \n"); - log.debug("update string: \n" + queryStr); - throw new RDFServiceException("Unable to perform SPARQL UPDATE"); - } - - InputStream in = response.getEntity().getContent(); - ResultSet resultSet = ResultSetFactory.fromXML(in); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - - switch (resultFormat) { - case CSV: - ResultSetFormatter.outputAsCSV(outputStream,resultSet); - break; - case TEXT: - ResultSetFormatter.out(outputStream,resultSet); - break; - case JSON: - ResultSetFormatter.outputAsJSON(outputStream, resultSet); - break; - case XML: - ResultSetFormatter.outputAsXML(outputStream, resultSet); - break; - default: - throw new RDFServiceException("unrecognized result format"); - } - InputStream result = new ByteArrayInputStream(outputStream.toByteArray()); - return result; - } finally { - response.close(); - } - } catch (IOException ioe) { + HttpResponse response = httpClient.execute(meth); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode > 399) { + log.error("response " + statusCode + " to query. \n"); + log.debug("update string: \n" + queryStr); + throw new RDFServiceException("Unable to perform SPARQL UPDATE"); + } + + try (InputStream in = response.getEntity().getContent()) { + ResultSet resultSet = ResultSetFactory.fromXML(in); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + switch (resultFormat) { + case CSV: + ResultSetFormatter.outputAsCSV(outputStream, resultSet); + break; + case TEXT: + ResultSetFormatter.out(outputStream, resultSet); + break; + case JSON: + ResultSetFormatter.outputAsJSON(outputStream, resultSet); + break; + case XML: + ResultSetFormatter.outputAsXML(outputStream, resultSet); + break; + default: + throw new RDFServiceException("unrecognized result format"); + } + InputStream result = new ByteArrayInputStream( + outputStream.toByteArray()); + return result; + } + } catch (IOException ioe) { throw new RuntimeException(ioe); } catch (URISyntaxException e) { throw new RuntimeException(e); @@ -463,17 +459,13 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService { HttpPost meth = new HttpPost(updateEndpointURI); meth.addHeader("Content-Type", "application/x-www-form-urlencoded"); meth.setEntity(new UrlEncodedFormEntity(Arrays.asList(new BasicNameValuePair("update", updateString)))); - CloseableHttpResponse response = httpClient.execute(meth); - try { - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode > 399) { - log.error("response " + response.getStatusLine() + " to update. \n"); - //log.debug("update string: \n" + updateString); - throw new RDFServiceException("Unable to perform SPARQL UPDATE"); - } - } finally { - response.close(); - } + HttpResponse response = httpClient.execute(meth); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode > 399) { + log.error("response " + response.getStatusLine() + " to update. \n"); + //log.debug("update string: \n" + updateString); + throw new RDFServiceException("Unable to perform SPARQL UPDATE"); + } } catch (Exception e) { throw new RDFServiceException("Unable to perform change set update", e); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/virtuoso/RDFServiceVirtuoso.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/virtuoso/RDFServiceVirtuoso.java index dca6100da..555390d0f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/virtuoso/RDFServiceVirtuoso.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/rdfservice/impl/virtuoso/RDFServiceVirtuoso.java @@ -5,18 +5,21 @@ package edu.cornell.mannlib.vitro.webapp.rdfservice.impl.virtuoso; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.HttpResponse; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; -import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.client.protocol.ClientContext; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.BasicCredentialsProvider; +import org.apache.http.protocol.BasicHttpContext; +import org.apache.http.protocol.HttpContext; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.sparql.RDFServiceSparql; @@ -75,25 +78,22 @@ public class RDFServiceVirtuoso extends RDFServiceSparql { log.debug("UPDATE STRING: " + updateString); try { - CloseableHttpResponse response = httpClient.execute( + HttpResponse response = httpClient.execute( createHttpRequest(updateString), createHttpContext()); - try { - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode > 399) { - log.error("response " + response.getStatusLine() - + " to update. \n"); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode > 399) { + log.error("response " + response.getStatusLine() + + " to update. \n"); - InputStream content = response.getEntity().getContent(); + try (InputStream content = response.getEntity().getContent()) { for (String line : IOUtils.readLines(content)) { log.error("response-line >>" + line); } - - throw new RDFServiceException( - "Unable to perform SPARQL UPDATE: status code = " - + statusCode); } - } finally { - response.close(); + + throw new RDFServiceException( + "Unable to perform SPARQL UPDATE: status code = " + + statusCode); } } catch (Exception e) { log.error("Failed to update: " + updateString, e); @@ -113,7 +113,12 @@ public class RDFServiceVirtuoso extends RDFServiceSparql { private HttpPost createHttpRequest(String updateString) { HttpPost meth = new HttpPost(updateEndpointURI); meth.addHeader("Content-Type", "application/sparql-query"); - meth.setEntity(new StringEntity(updateString, "UTF-8")); + try { + meth.setEntity(new StringEntity(updateString, "UTF-8")); + } catch (UnsupportedEncodingException e) { + // UTF-8 is unsupported? + throw new RuntimeException(e); + } return meth; } @@ -121,13 +126,13 @@ public class RDFServiceVirtuoso extends RDFServiceSparql { * We need an HttpContext that will provide username and password in * response to a basic authentication challenge. */ - private HttpClientContext createHttpContext() { + private HttpContext createHttpContext() { CredentialsProvider provider = new BasicCredentialsProvider(); provider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials( username, password)); - HttpClientContext context = HttpClientContext.create(); - context.setCredentialsProvider(provider); + BasicHttpContext context = new BasicHttpContext(); + context.setAttribute(ClientContext.CREDS_PROVIDER, provider); return context; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SolrSmokeTest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SolrSmokeTest.java index 0f79ba152..cb6702ee8 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SolrSmokeTest.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SolrSmokeTest.java @@ -15,11 +15,11 @@ import javax.servlet.ServletContextListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.http.HttpException; +import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; -import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.client.DefaultHttpClient; import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; @@ -207,8 +207,7 @@ public class SolrSmokeTest implements ServletContextListener { private static final long SLEEP_INTERVAL = 20000; // 20 seconds private final URL solrUrl; - private final CloseableHttpClient httpClient = HttpClients - .createDefault(); + private final HttpClient httpClient = new DefaultHttpClient(); private int statusCode; @@ -238,13 +237,9 @@ public class SolrSmokeTest implements ServletContextListener { try { HttpGet method = new HttpGet(solrUrl.toExternalForm()); SolrSmokeTest.log.debug("Trying to connect to Solr"); - CloseableHttpResponse response = httpClient.execute(method); - try { - statusCode = response.getStatusLine().getStatusCode(); - SolrSmokeTest.log.debug("HTTP status was " + statusCode); - } finally { - response.close(); - } + HttpResponse response = httpClient.execute(method); + statusCode = response.getStatusLine().getStatusCode(); + SolrSmokeTest.log.debug("HTTP status was " + statusCode); } catch (SocketTimeoutException e) { // Catch the exception so we can retry this. // Save the status so we know why we failed. @@ -279,8 +274,7 @@ public class SolrSmokeTest implements ServletContextListener { */ private static class SolrPinger { private final URL solrUrl; - private final CloseableHttpClient httpClient = HttpClients - .createDefault(); + private final HttpClient httpClient = new DefaultHttpClient(); public SolrPinger(URL solrUrl) { this.solrUrl = solrUrl; @@ -291,15 +285,11 @@ public class SolrSmokeTest implements ServletContextListener { HttpGet method = new HttpGet(solrUrl.toExternalForm() + "/admin/ping"); SolrSmokeTest.log.debug("Trying to ping Solr"); - CloseableHttpResponse response = httpClient.execute(method); + HttpResponse response = httpClient.execute(method); SolrSmokeTest.log.debug("Finished pinging Solr"); - try { - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode != HttpStatus.SC_OK) { - throw new SolrProblemException(statusCode); - } - } finally { - response.close(); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + throw new SolrProblemException(statusCode); } } catch (IOException e) { throw new SolrProblemException(e); diff --git a/webapp/src/edu/ucsf/vitro/opensocial/OpenSocialSmokeTests.java b/webapp/src/edu/ucsf/vitro/opensocial/OpenSocialSmokeTests.java index 3edb11c6f..08d050ca5 100644 --- a/webapp/src/edu/ucsf/vitro/opensocial/OpenSocialSmokeTests.java +++ b/webapp/src/edu/ucsf/vitro/opensocial/OpenSocialSmokeTests.java @@ -22,11 +22,10 @@ import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; -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.HttpClients; +import org.apache.http.impl.client.DefaultHttpClient; import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties; import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus; @@ -350,8 +349,7 @@ public class OpenSocialSmokeTests implements ServletContextListener { private final String shindigBaseUrl; private final String shindigTestUrl; - private final CloseableHttpClient httpClient = HttpClients - .createDefault(); + private final DefaultHttpClient httpClient = new DefaultHttpClient(); private int statusCode = Integer.MIN_VALUE; @@ -383,13 +381,9 @@ public class OpenSocialSmokeTests implements ServletContextListener { HttpGet method = new HttpGet(shindigTestUrl); try { log.debug("Trying to connect to Shindig"); - CloseableHttpResponse response = httpClient.execute(method); - try { - statusCode = response.getStatusLine().getStatusCode(); - log.debug("HTTP status was " + statusCode); - } finally { - response.close(); - } + HttpResponse response = httpClient.execute(method); + statusCode = response.getStatusLine().getStatusCode(); + log.debug("HTTP status was " + statusCode); } catch (SocketTimeoutException e) { // Catch the exception so we can retry this. // Save the status so we know why we failed.