[utilities COMMIT] in /java-support/trunk/src: main/java/net/shibboleth/utilities/java/support/httpclient/FileCaching...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Oct 16 20:28:08 EDT 2013
Author: putmanb
Date: Wed Oct 16 20:28:08 2013
New Revision: 462
URL: http://svn.shibboleth.net/view/utilities?rev=462&view=rev
Log:
Checkpointing some more HttpClient work, for the history. Probably will wind up abandoning though.
Modified:
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/HttpClientBuilder.java
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/InMemoryCachingHttpClientBuilder.java
java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/httpclient/HttpResourceTest.java
Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java?rev=462&r1=461&r2=462&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java Wed Oct 16 20:28:08 2013
@@ -28,7 +28,7 @@
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.cache.CacheConfig;
-import org.apache.http.impl.client.cache.CachingHttpClient;
+import org.apache.http.impl.client.cache.CachingHttpClientBuilder;
import org.apache.http.impl.client.cache.FileResourceFactory;
import org.apache.http.impl.client.cache.ManagedHttpCacheStorage;
@@ -39,10 +39,7 @@
* directory unintentionally. This could result senstive data being available in ways it should not be.
* </p>
*/
-public class FileCachingHttpClientBuilder {
-
- /** Builder of clients used to fetch data from remote servers. */
- private final HttpClientBuilder clientBuilder;
+public class FileCachingHttpClientBuilder extends HttpClientBuilder {
/**
* Directory in which cached content will be stored. Default:
@@ -55,14 +52,18 @@
/** The maximum response body size, in bytes, that will be eligible for caching. Default: 10485760 (10 megabytes) */
private long maxCacheEntrySize;
-
+
+ public FileCachingHttpClientBuilder() {
+ this(CachingHttpClientBuilder.create());
+ }
+
/**
* Constructor.
*
* @param builder builder of clients used to fetch data from remote servers
*/
- public FileCachingHttpClientBuilder(@Nonnull final HttpClientBuilder builder) {
- clientBuilder = Constraint.isNotNull(builder, "HttpClient builder can not be null");
+ public FileCachingHttpClientBuilder(@Nonnull final CachingHttpClientBuilder builder) {
+ super(builder);
cacheDir = new File(System.getProperty("java.io.tmpdir") + File.separator + "wwwcache");
maxCacheEntries = 100;
maxCacheEntrySize = 10485760;
@@ -135,15 +136,10 @@
maxCacheEntrySize = (int) Constraint.isGreaterThan(0, size, "Maximum cache entry size must be greater than 0");
}
- /**
- * Builds an HTTP client that performs RFC2616 caching.
- *
- * @return the constructed HTTP client
- *
- * @throws IOException if the cache directory does not exist and can not be created or if it can not be read from or
- * written to
- */
- public HttpClient buildClient() throws IOException {
+ /** {@inheritDoc} */
+ protected void decorateApacheBuilder() throws Exception {
+ super.decorateApacheBuilder();
+
if (!cacheDir.exists()) {
if (!cacheDir.mkdirs()) {
throw new IOException("Unable to create cache directory " + cacheDir.getAbsolutePath());
@@ -157,16 +153,18 @@
if (!cacheDir.canWrite()) {
throw new IOException("Cache directory '" + cacheDir.getAbsolutePath() + "' is not writable");
}
+
+ CachingHttpClientBuilder cachingBuilder = (CachingHttpClientBuilder) getApacheBuilder();
- HttpClient client = clientBuilder.buildClient();
-
- CacheConfig cacheConfig = new CacheConfig();
- cacheConfig.setMaxCacheEntries(maxCacheEntries);
- cacheConfig.setMaxObjectSize(maxCacheEntrySize);
- cacheConfig.setHeuristicCachingEnabled(false);
- cacheConfig.setSharedCache(false);
-
- return new CachingHttpClient(client, new FileResourceFactory(cacheDir),
- new ManagedHttpCacheStorage(cacheConfig), cacheConfig);
+ CacheConfig.Builder cacheConfigBuilder = CacheConfig.custom();
+ cacheConfigBuilder.setMaxCacheEntries(maxCacheEntries);
+ cacheConfigBuilder.setMaxObjectSize(maxCacheEntrySize);
+ cacheConfigBuilder.setHeuristicCachingEnabled(false);
+ cacheConfigBuilder.setSharedCache(false);
+ CacheConfig cacheConfig = cacheConfigBuilder.build();
+
[... 190 lines stripped ...]
More information about the commits
mailing list