public static HttpClientBuilder getHttpClientBuilder() {
// Common CacheConfig for both the JarCacheStorage and the underlying
// BasicHttpCacheStorage
final CacheConfig cacheConfig = CacheConfig.custom().setMaxCacheEntries(1000).setMaxObjectSize(1024 * 128)
.build();
RequestConfig config = RequestConfig.custom().setConnectTimeout(DEFAULT_TIMEOUT)
.setConnectionRequestTimeout(DEFAULT_TIMEOUT).setSocketTimeout(DEFAULT_TIMEOUT).build();
HttpClientBuilder clientBuilder = CachingHttpClientBuilder.create()
// allow caching
.setCacheConfig(cacheConfig)
// Wrap the local JarCacheStorage around a BasicHttpCacheStorage
.setHttpCacheStorage(new JarCacheStorage(null, cacheConfig, new BasicHttpCacheStorage(cacheConfig)))
// Support compressed data
// http://hc.apache.org/httpcomponents-client-ga/tutorial/html/httpagent.html#d5e1238
.addInterceptorFirst(new RequestAcceptEncoding()).addInterceptorFirst(new ResponseContentEncoding())
// use system defaults for proxy etc.
.useSystemProperties().setDefaultRequestConfig(config);
return clientBuilder;
}
java类org.apache.http.impl.client.cache.CacheConfig的实例源码
JSONUtil.java 文件源码
项目:csvsum
阅读 27
收藏 0
点赞 0
评论 0
HttpClientFactory.java 文件源码
项目:axon-eventstore
阅读 24
收藏 0
点赞 0
评论 0
private static CloseableHttpClient newClosableCachingHttpClient(EventStoreSettings settings) {
final CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(Integer.MAX_VALUE)
.setMaxObjectSize(Integer.MAX_VALUE)
.build();
settings.getCacheDirectory()
.mkdirs();
return CachingHttpClientBuilder.create()
.setHttpCacheStorage(new FileCacheStorage(cacheConfig, settings.getCacheDirectory()))
.setCacheConfig(cacheConfig)
.setDefaultRequestConfig(requestConfig(settings))
.setDefaultCredentialsProvider(credentialsProvider(settings))
.setRedirectStrategy(new LaxRedirectStrategy())
.setRetryHandler(new StandardHttpRequestRetryHandler())
.setKeepAliveStrategy(new de.qyotta.eventstore.utils.DefaultConnectionKeepAliveStrategy())
.setConnectionManagerShared(true)
.build();
}
MCRURIResolver.java 文件源码
项目:mycore
阅读 24
收藏 0
点赞 0
评论 0
public MCRRESTResolver() {
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxObjectSize(MAX_OBJECT_SIZE)
.setMaxCacheEntries(MAX_CACHE_ENTRIES)
.build();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(REQUEST_TIMEOUT)
.setSocketTimeout(REQUEST_TIMEOUT)
.build();
String userAgent = MessageFormat
.format("MyCoRe/{0} ({1}; java {2})", MCRCoreVersion.getCompleteVersion(), MCRConfiguration.instance()
.getString("MCR.NameOfProject", "undefined"), System.getProperty("java.version"));
this.restClient = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setDefaultRequestConfig(requestConfig)
.setUserAgent(userAgent)
.build();
MCRShutdownHandler.getInstance().addCloseable(this::close);
this.logger = LogManager.getLogger();
}
SAClient.java 文件源码
项目:dmaap-framework
阅读 24
收藏 0
点赞 0
评论 0
private CloseableHttpClient createDefaultClient(HttpClientConnectionManager fClientCm) {
final CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(DEFAULT_CACHE_MAX_ENTRIES)
.setMaxObjectSize(DEFAULT_CACHE_MAX_OBJ_SIZE)
.setHeuristicCachingEnabled(true)
.setHeuristicDefaultLifetime(DEFAULT_CACHE_TTL_IN_SECS)
.build();
final RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(DEFAULT_REQUEST_CONN_TIMEOUT_IN_MS)
.setSocketTimeout(DEFAULT_REQUEST_SOCK_TIMEOUT_IN_MS)
.build();
return CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setConnectionManager(fClientCm)
.setDefaultRequestConfig(requestConfig)
.build();
}
HttpEndpoint.java 文件源码
项目:Brutusin-RPC
阅读 30
收藏 0
点赞 0
评论 0
public HttpEndpoint(URI endpoint, Config cfg, HttpClientContextFactory clientContextFactory) {
if (endpoint == null) {
throw new IllegalArgumentException("Endpoint is required");
}
if (cfg == null) {
cfg = new ConfigurationBuilder().build();
}
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(cfg.getMaxCacheEntries())
.setMaxObjectSize(cfg.getMaxCacheObjectSize())
.build();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(1000 * cfg.getConnectTimeOutSeconds())
.setSocketTimeout(1000 * cfg.getSocketTimeOutSeconds())
.build();
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setMaxTotal(cfg.getMaxConections());
this.endpoint = endpoint;
this.httpClient = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(new StandardHttpRequestRetryHandler())
.setConnectionManager(cm)
.build();
this.clientContextFactory = clientContextFactory;
initPingThread(cfg.getPingSeconds());
}
TestMemcachedHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 20
收藏 0
点赞 0
评论 0
@Override
@Before
public void setUp() throws Exception {
mockMemcachedClient = mock(MemcachedClientIF.class);
mockKeyHashingScheme = mock(KeyHashingScheme.class);
mockMemcachedCacheEntryFactory = mock(MemcachedCacheEntryFactory.class);
mockMemcachedCacheEntry = mock(MemcachedCacheEntry.class);
mockMemcachedCacheEntry2 = mock(MemcachedCacheEntry.class);
mockMemcachedCacheEntry3 = mock(MemcachedCacheEntry.class);
mockMemcachedCacheEntry4 = mock(MemcachedCacheEntry.class);
final CacheConfig config = CacheConfig.custom().setMaxUpdateRetries(1).build();
impl = new MemcachedHttpCacheStorage(mockMemcachedClient, config,
mockMemcachedCacheEntryFactory, mockKeyHashingScheme);
}
TestEhcacheProtocolRequirements.java 文件源码
项目:purecloud-iot
阅读 18
收藏 0
点赞 0
评论 0
@Override
@Before
public void setUp() {
super.setUp();
config = CacheConfig.custom().setMaxObjectSize(MAX_BYTES).build();
if (CACHE_MANAGER.cacheExists(TEST_EHCACHE_NAME)){
CACHE_MANAGER.removeCache(TEST_EHCACHE_NAME);
}
CACHE_MANAGER.addCache(TEST_EHCACHE_NAME);
final HttpCacheStorage storage = new EhcacheHttpCacheStorage(CACHE_MANAGER.getCache(TEST_EHCACHE_NAME));
mockBackend = EasyMock.createNiceMock(ClientExecChain.class);
impl = new CachingExec(mockBackend, new HeapResourceFactory(), storage, config);
}
TestEhcacheHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 17
收藏 0
点赞 0
评论 0
@Override
public void setUp() {
mockCache = mock(Ehcache.class);
final CacheConfig config = CacheConfig.custom().setMaxUpdateRetries(1).build();
mockSerializer = mock(HttpCacheEntrySerializer.class);
impl = new EhcacheHttpCacheStorage(mockCache, config, mockSerializer);
}
HttpClientProvider.java 文件源码
项目:jira-dvcs-connector
阅读 18
收藏 0
点赞 0
评论 0
private HttpCacheStorage createStorage()
{
CacheConfig config = new CacheConfig();
// if max cache entries value is not present the CacheConfig's default (CacheConfig.DEFAULT_MAX_CACHE_ENTRIES = 1000) will be used
Integer maxCacheEntries = Integer.getInteger("bitbucket.client.cache.maxentries");
if (maxCacheEntries != null)
{
config.setMaxCacheEntries(maxCacheEntries);
}
return new BasicHttpCacheStorage(config);
}
TeX2MathML.java 文件源码
项目:mathosphere
阅读 16
收藏 0
点赞 0
评论 0
private static String tex2json(String tex) throws IOException {
CachingHttpClientBuilder cachingHttpClientBuilder = CachingHttpClientBuilder.create();
CacheConfig cacheCfg = new CacheConfig();
cacheCfg.setMaxCacheEntries(100000);
cacheCfg.setMaxObjectSize(8192);
cachingHttpClientBuilder.setCacheConfig(cacheCfg);
HttpClient client = cachingHttpClientBuilder.build();
//HttpPost post = new HttpPost("http://localhost/convert");
HttpPost post = new HttpPost("https://drmf-latexml.wmflabs.org");
List<NameValuePair> nameValuePairs = new ArrayList<>(1);
nameValuePairs.add(new BasicNameValuePair("tex",
"$" + tex + "$"));
//WARNING: This does not produce pmml, since there is a xstl trasformation that rewrites the output and removes pmml
// nameValuePairs.add(new BasicNameValuePair("profile",
// "mwsquery"));
nameValuePairs.add(new BasicNameValuePair("preload",
"mws.sty"));
nameValuePairs.add(new BasicNameValuePair("profile",
"math"));
nameValuePairs.add(new BasicNameValuePair("noplane1",
""));
nameValuePairs.add(new BasicNameValuePair("whatsout",
"math"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "utf-8"));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
String result = "";
while ((line = rd.readLine()) != null) {
result += line;
}
return result;
}
HttpUtil.java 文件源码
项目:thym
阅读 23
收藏 0
点赞 0
评论 0
@SuppressWarnings("restriction")
private static CloseableHttpClient getHttpClient(URI url){
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(1000)
.setMaxObjectSize(120*1024).setHeuristicCachingEnabled(true)
.setHeuristicDefaultLifetime(TimeUnit.HOURS.toSeconds(12))
.build();
CachingHttpClientBuilder builder = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setHttpCacheStorage(new BundleHttpCacheStorage(HybridCore.getContext().getBundle()));
builder = setupProxy(builder, url);
return builder.build();
}
BellaDatiClient.java 文件源码
项目:belladati-sdk-java
阅读 16
收藏 0
点赞 0
评论 0
/**
* Builds the HTTP client to connect to the server.
*
* @param trustSelfSigned <tt>true</tt> if the client should accept
* self-signed certificates
* @return a new client instance
*/
private CloseableHttpClient buildClient(boolean trustSelfSigned) {
try {
// if required, define custom SSL context allowing self-signed certs
SSLContext sslContext = !trustSelfSigned ? SSLContexts.createSystemDefault()
: SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();
// set timeouts for the HTTP client
int globalTimeout = readFromProperty("bdTimeout", 100000);
int connectTimeout = readFromProperty("bdConnectTimeout", globalTimeout);
int connectionRequestTimeout = readFromProperty("bdConnectionRequestTimeout", globalTimeout);
int socketTimeout = readFromProperty("bdSocketTimeout", globalTimeout);
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT).setConnectTimeout(connectTimeout)
.setSocketTimeout(socketTimeout).setConnectionRequestTimeout(connectionRequestTimeout).build();
// configure caching
CacheConfig cacheConfig = CacheConfig.copy(CacheConfig.DEFAULT).setSharedCache(false).setMaxCacheEntries(1000)
.setMaxObjectSize(2 * 1024 * 1024).build();
// configure connection pooling
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(RegistryBuilder
.<ConnectionSocketFactory> create().register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", new SSLConnectionSocketFactory(sslContext)).build());
int connectionLimit = readFromProperty("bdMaxConnections", 40);
// there's only one server to connect to, so max per route matters
connManager.setMaxTotal(connectionLimit);
connManager.setDefaultMaxPerRoute(connectionLimit);
// create the HTTP client
return CachingHttpClientBuilder.create().setCacheConfig(cacheConfig).setDefaultRequestConfig(requestConfig)
.setConnectionManager(connManager).build();
} catch (GeneralSecurityException e) {
throw new InternalConfigurationException("Failed to set up SSL context", e);
}
}
VolatileBellaDatiClient.java 文件源码
项目:belladati-sdk-java
阅读 16
收藏 0
点赞 0
评论 0
/**
* Builds the HTTP client to connect to the server.
*
* @param trustSelfSigned <tt>true</tt> if the client should accept
* self-signed certificates
* @return a new client instance
*/
private CloseableHttpClient buildClient(boolean trustSelfSigned) {
try {
// if required, define custom SSL context allowing self-signed certs
SSLContext sslContext = !trustSelfSigned ? SSLContexts.createSystemDefault()
: SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();
// set timeouts for the HTTP client
int globalTimeout = readFromProperty("bdTimeout", 100000);
int connectTimeout = readFromProperty("bdConnectTimeout", globalTimeout);
int connectionRequestTimeout = readFromProperty("bdConnectionRequestTimeout", globalTimeout);
int socketTimeout = readFromProperty("bdSocketTimeout", globalTimeout);
RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT).setConnectTimeout(connectTimeout)
.setSocketTimeout(socketTimeout).setConnectionRequestTimeout(connectionRequestTimeout).build();
// configure caching
CacheConfig cacheConfig = CacheConfig.copy(CacheConfig.DEFAULT).setSharedCache(false).setMaxCacheEntries(1000)
.setMaxObjectSize(2 * 1024 * 1024).build();
// configure connection pooling
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(RegistryBuilder
.<ConnectionSocketFactory> create().register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", new SSLConnectionSocketFactory(sslContext)).build());
int connectionLimit = readFromProperty("bdMaxConnections", 40);
// there's only one server to connect to, so max per route matters
connManager.setMaxTotal(connectionLimit);
connManager.setDefaultMaxPerRoute(connectionLimit);
// create the HTTP client
return CachingHttpClientBuilder.create().setCacheConfig(cacheConfig).setDefaultRequestConfig(requestConfig)
.setConnectionManager(connManager).build();
} catch (GeneralSecurityException e) {
throw new InternalConfigurationException("Failed to set up SSL context", e);
}
}
SimpleHttpClient.java 文件源码
项目:neo4j-webgraph
阅读 26
收藏 0
点赞 0
评论 0
/**
* Creates a HTTP client.
*
* @param parent
* Owning object. Used for logging.
* @param maxCacheEntries
* the maximum number of cache entries the cache will retain. Set to 0 for no caching.
*/
public SimpleHttpClient(Object parent, int maxCacheEntries) {
logger = Logger.getLogger(this.getClass().getName() + "-" + instanceCounter.incrementAndGet() + " ("
+ parent.getClass().getSimpleName() + ")");
isShutdown = new AtomicBoolean();
PoolingClientConnectionManager conman = new PoolingClientConnectionManager();
// increase max number of connections per host and total, defaults are too low to take advantage of multiple
// threads
conman.setDefaultMaxPerRoute(50); // default is 2
conman.setMaxTotal(100); // default is 20
defaultClient = new DefaultHttpClient(conman);
if (maxCacheEntries > 0) {
CacheConfig cacheConfig = new CacheConfig();
cacheConfig.setSharedCache(false);
cacheConfig.setMaxCacheEntries(maxCacheEntries);
cachingClient = new CachingHttpClient(defaultClient, cacheConfig);
theClient = cachingClient;
} else {
cachingClient = null;
theClient = defaultClient;
}
logger.info("Created");
}
HttpClientConfiguration.java 文件源码
项目:sentry
阅读 32
收藏 0
点赞 0
评论 0
@Bean
public CloseableHttpClient httpClient() {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(properties().getReadTimeout())
.setSocketTimeout(properties().getSocketTimeout())
.build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(properties().getMaxTotalConnections());
connectionManager.setDefaultMaxPerRoute(properties().getMaxConnectionsPerRoute());
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(properties().getMaxCacheEntries())
.setMaxObjectSize(properties().getMaxObjectSize())
.setHeuristicCachingEnabled(true) // important!
.build();
File cacheDir = new File(properties().getCacheDir());
try {
Files.createDirectories(cacheDir.toPath());
} catch (IOException e) {
log.warn("Could not create cache directory - using temp folder", e);
try {
cacheDir = Files.createTempDirectory("cache").toFile();
} catch (IOException ee) {
log.warn("Could not create temp cache directory", ee);
}
}
FileResourceFactory resourceFactory = new FileResourceFactory(cacheDir);
cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
client = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setResourceFactory(resourceFactory)
.setHttpCacheStorage(cacheStorage)
.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.setUserAgent(Constants.USER_AGENT)
.build();
return client;
}
FileCacheStorage.java 文件源码
项目:axon-eventstore
阅读 19
收藏 0
点赞 0
评论 0
public FileCacheStorage(final CacheConfig config, File cacheDir) {
this.cacheDir = cacheDir;
}
HttpClientConfiguration.java 文件源码
项目:sentry
阅读 21
收藏 0
点赞 0
评论 0
@Bean
public CloseableHttpClient httpClient() {
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(properties().getReadTimeout())
.setSocketTimeout(properties().getSocketTimeout())
.build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(properties().getMaxTotalConnections());
connectionManager.setDefaultMaxPerRoute(properties().getMaxConnectionsPerRoute());
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(properties().getMaxCacheEntries())
.setMaxObjectSize(properties().getMaxObjectSize())
.setHeuristicCachingEnabled(true) // important!
.build();
File cacheDir = new File(properties().getCacheDir());
try {
Files.createDirectories(cacheDir.toPath());
} catch (IOException e) {
log.warn("Could not create cache directory - using temp folder", e);
try {
cacheDir = Files.createTempDirectory("cache").toFile();
} catch (IOException ee) {
log.warn("Could not create temp cache directory", ee);
}
}
FileResourceFactory resourceFactory = new FileResourceFactory(cacheDir);
cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
client = CachingHttpClients.custom()
.setCacheConfig(cacheConfig)
.setResourceFactory(resourceFactory)
.setHttpCacheStorage(cacheStorage)
.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.setUserAgent(Constants.USER_AGENT)
.build();
return client;
}
TestMemcachedHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 16
收藏 0
点赞 0
评论 0
@Test
public void testCacheUpdateThrowsExceptionsIfCASFailsEnoughTimes() throws IOException {
final String url = "foo";
final String key = "key";
final HttpCacheEntry existingValue = HttpTestUtils.makeCacheEntry();
final HttpCacheEntry updatedValue = HttpTestUtils.makeCacheEntry();
final byte[] oldBytes = HttpTestUtils.getRandomBytes(128);
final CASValue<Object> casValue = new CASValue<Object>(1, oldBytes);
final byte[] newBytes = HttpTestUtils.getRandomBytes(128);
final CacheConfig config = CacheConfig.custom().setMaxUpdateRetries(0).build();
impl = new MemcachedHttpCacheStorage(mockMemcachedClient, config,
mockMemcachedCacheEntryFactory, mockKeyHashingScheme);
final HttpCacheUpdateCallback callback = new HttpCacheUpdateCallback() {
@Override
public HttpCacheEntry update(final HttpCacheEntry old) {
assertSame(existingValue, old);
return updatedValue;
}
};
// get empty old entry
when(mockKeyHashingScheme.hash(url)).thenReturn(key);
when(mockMemcachedClient.gets(key)).thenReturn(casValue);
when(mockMemcachedCacheEntryFactory.getUnsetCacheEntry())
.thenReturn(mockMemcachedCacheEntry);
when(mockMemcachedCacheEntry.getStorageKey()).thenReturn(url);
when(mockMemcachedCacheEntry.getHttpCacheEntry()).thenReturn(existingValue);
when(mockMemcachedCacheEntryFactory.getMemcachedCacheEntry(url, updatedValue))
.thenReturn(mockMemcachedCacheEntry2);
when(mockMemcachedCacheEntry2.toByteArray()).thenReturn(newBytes);
when(
mockMemcachedClient.cas(key, casValue.getCas(),
newBytes)).thenReturn(CASResponse.EXISTS);
try {
impl.updateEntry(url, callback);
fail("should have thrown exception");
} catch (final HttpCacheUpdateException expected) {
}
verify(mockKeyHashingScheme).hash(url);
verify(mockMemcachedClient).gets(key);
verify(mockMemcachedCacheEntryFactory).getUnsetCacheEntry();
verify(mockMemcachedCacheEntry).getStorageKey();
verify(mockMemcachedCacheEntry).getHttpCacheEntry();
verify(mockMemcachedCacheEntryFactory).getMemcachedCacheEntry(url, updatedValue);
verify(mockMemcachedCacheEntry2).toByteArray();
verify(mockMemcachedClient).cas(key, casValue.getCas(), newBytes);
}
EtagCachingHttpClient.java 文件源码
项目:jira-dvcs-connector
阅读 20
收藏 0
点赞 0
评论 0
public EtagCachingHttpClient()
{
this(new DefaultHttpClient(), new BasicHttpCacheStorage(new CacheConfig()));
}
EtagCachingHttpClient.java 文件源码
项目:jira-dvcs-connector
阅读 17
收藏 0
点赞 0
评论 0
public EtagCachingHttpClient(HttpClient httpClient)
{
this(httpClient, new BasicHttpCacheStorage(new CacheConfig()));
}
YamjHttpClientBuilder.java 文件源码
项目:yamj-v2
阅读 21
收藏 0
点赞 0
评论 0
@SuppressWarnings("resource")
private static YamjHttpClient buildHttpClient() {
LOG.trace("Create new YAMJ http client");
// create proxy
HttpHost proxy = null;
CredentialsProvider credentialsProvider = null;
if (StringUtils.isNotBlank(PROXY_HOST) && PROXY_PORT > 0) {
proxy = new HttpHost(PROXY_HOST, PROXY_PORT);
if (StringUtils.isNotBlank(PROXY_USERNAME) && StringUtils.isNotBlank(PROXY_PASSWORD)) {
credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(
new AuthScope(PROXY_HOST, PROXY_PORT),
new UsernamePasswordCredentials(PROXY_USERNAME, PROXY_PASSWORD));
}
}
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
connManager.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(TIMEOUT_SOCKET).build());
connManager.setMaxTotal(20);
connManager.setDefaultMaxPerRoute(2);
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(1000)
.setMaxObjectSize(8192)
.build();
HttpClientBuilder builder = CachingHttpClientBuilder.create()
.setCacheConfig(cacheConfig)
.setConnectionManager(connManager)
.setProxy(proxy)
.setDefaultCredentialsProvider(credentialsProvider)
.setDefaultRequestConfig(RequestConfig.custom()
.setConnectionRequestTimeout(TIMEOUT_READ)
.setConnectTimeout(TIMEOUT_CONNECT)
.setSocketTimeout(TIMEOUT_SOCKET)
.setCookieSpec(CookieSpecs.IGNORE_COOKIES)
.setProxy(proxy)
.build());
// show status
showStatus();
// build the client
YamjHttpClient wrapper = new YamjHttpClient(builder.build(), connManager);
wrapper.setUserAgentSelector(new WebBrowserUserAgentSelector());
wrapper.addGroupLimit(".*", 1); // default limit, can be overwritten
// First we have to read/create the rules
String maxDownloadSlots = PropertiesUtil.getProperty("mjb.MaxDownloadSlots");
if (StringUtils.isNotBlank(maxDownloadSlots)) {
LOG.debug("Using download limits: {}", maxDownloadSlots);
Pattern pattern = Pattern.compile(",?\\s*([^=]+)=(\\d+)");
Matcher matcher = pattern.matcher(maxDownloadSlots);
while (matcher.find()) {
String group = matcher.group(1);
try {
final Integer maxResults = Integer.valueOf(matcher.group(2));
wrapper.addGroupLimit(group, maxResults);
LOG.trace("Added download slot '{}' with max results {}", group, maxResults);
} catch (NumberFormatException error) {
LOG.debug("Rule '{}' is no valid regexp, ignored", group);
}
}
}
return wrapper;
}
SpotifyHttpManager.java 文件源码
项目:spotify-web-api-java
阅读 21
收藏 0
点赞 0
评论 0
/**
* Construct a new SpotifyHttpManager instance.
*
* @param builder The builder.
*/
public SpotifyHttpManager(Builder builder) {
this.proxy = builder.proxy;
this.proxyCredentials = builder.proxyCredentials;
this.cacheMaxEntries = builder.cacheMaxEntries;
this.cacheMaxObjectSize = builder.cacheMaxObjectSize;
CacheConfig cacheConfig = CacheConfig.custom()
.setMaxCacheEntries(cacheMaxEntries != null ? cacheMaxEntries : DEFAULT_CACHE_MAX_ENTRIES)
.setMaxObjectSize(cacheMaxEntries != null ? cacheMaxEntries : DEFAULT_CACHE_MAX_OBJECT_SIZE)
.setSharedCache(false)
.build();
ConnectionConfig connectionConfig = ConnectionConfig
.custom()
.setCharset(Charset.forName("UTF-8"))
.build();
new BasicCredentialsProvider();
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
if (proxy != null) {
credentialsProvider.setCredentials(
new AuthScope(proxy.getHostName(), proxy.getPort(), null, proxy.getSchemeName()),
proxyCredentials
);
}
RequestConfig requestConfig = RequestConfig
.custom()
.setCookieSpec(CookieSpecs.DEFAULT)
.setProxy(proxy)
.build();
httpClient = CachingHttpClients
.custom()
.setCacheConfig(cacheConfig)
.setDefaultConnectionConfig(connectionConfig)
.setDefaultCredentialsProvider(credentialsProvider)
.setDefaultRequestConfig(requestConfig)
.build();
}
HttpClientServiceImpl.java 文件源码
项目:marmotta
阅读 19
收藏 0
点赞 0
评论 0
@PostConstruct
protected void initialize() {
try {
lock.writeLock().lock();
httpParams = new BasicHttpParams();
String userAgentString =
"Apache Marmotta/" + configurationService.getStringConfiguration("kiwi.version") +
" (running at " + configurationService.getServerUri() + ")" +
" lmf-core/" + configurationService.getStringConfiguration("kiwi.version");
userAgentString = configurationService.getStringConfiguration("core.http.user_agent", userAgentString);
httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, configurationService.getIntConfiguration("core.http.so_timeout", 60000));
httpParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
configurationService.getIntConfiguration("core.http.connection_timeout", 10000));
httpParams.setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, true);
httpParams.setIntParameter(ClientPNames.MAX_REDIRECTS, 3);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
schemeRegistry.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
PoolingClientConnectionManager cm = new PoolingClientConnectionManager(schemeRegistry);
cm.setMaxTotal(configurationService.getIntConfiguration(CoreOptions.HTTP_MAX_CONNECTIONS, 20));
cm.setDefaultMaxPerRoute(configurationService.getIntConfiguration(CoreOptions.HTTP_MAX_CONNECTIONS_PER_ROUTE, 10));
final DefaultHttpClient hc = new DefaultHttpClient(cm, httpParams);
hc.setRedirectStrategy(new LMFRedirectStrategy());
hc.setHttpRequestRetryHandler(new LMFHttpRequestRetryHandler());
hc.removeRequestInterceptorByClass(org.apache.http.protocol.RequestUserAgent.class);
hc.addRequestInterceptor(new LMFRequestUserAgent(userAgentString));
if (configurationService.getBooleanConfiguration(CoreOptions.HTTP_CLIENT_CACHE_ENABLE, true)) {
CacheConfig cacheConfig = new CacheConfig();
// FIXME: Hardcoded constants - is this useful?
cacheConfig.setMaxCacheEntries(1000);
cacheConfig.setMaxObjectSize(81920);
final HttpCacheStorage cacheStore = new MapHttpCacheStorage(httpCache);
this.httpClient = new MonitoredHttpClient(new CachingHttpClient(hc, cacheStore, cacheConfig));
} else {
this.httpClient = new MonitoredHttpClient(hc);
}
bytesSent.set(0);
bytesReceived.set(0);
requestsExecuted.set(0);
idleConnectionMonitorThread = new IdleConnectionMonitorThread(httpClient.getConnectionManager());
idleConnectionMonitorThread.start();
StatisticsProvider stats = new StatisticsProvider(cm);
statisticsService.registerModule(HttpClientService.class.getSimpleName(), stats);
} finally {
lock.writeLock().unlock();
}
}
MemcachedHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 17
收藏 0
点赞 0
评论 0
/**
* Create a storage backend using the given <i>memcached</i> client and
* applying the given cache configuration and cache entry serialization
* mechanism. <b>Deprecation note:</b> In the process of fixing a bug
* based on the need to hash logical storage keys onto memcached cache
* keys, the serialization process was revamped. This constructor still
* works, but the serializer argument will be ignored and default
* implementations of the new framework will be used. You can still
* provide custom serialization by using the
* {@link #MemcachedHttpCacheStorage(MemcachedClientIF, CacheConfig,
* MemcachedCacheEntryFactory, KeyHashingScheme)} constructor.
* @param client how to talk to <i>memcached</i>
* @param config apply HTTP cache-related options
* @param serializer <b>ignored</b>
*
* @deprecated (4.2) do not use
*/
@Deprecated
public MemcachedHttpCacheStorage(final MemcachedClientIF client, final CacheConfig config,
final HttpCacheEntrySerializer serializer) {
this(client, config, new MemcachedCacheEntryFactoryImpl(),
new SHA256KeyHashingScheme());
}
MemcachedHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 22
收藏 0
点赞 0
评论 0
/**
* Create a storage backend using the given <i>memcached</i> client and
* applying the given cache configuration, serialization, and hashing
* mechanisms.
* @param client how to talk to <i>memcached</i>
* @param config apply HTTP cache-related options
* @param memcachedCacheEntryFactory Factory pattern used for obtaining
* instances of alternative cache entry serialization mechanisms
* @param keyHashingScheme how to map higher-level logical "storage keys"
* onto "cache keys" suitable for use with memcached
*/
public MemcachedHttpCacheStorage(final MemcachedClientIF client, final CacheConfig config,
final MemcachedCacheEntryFactory memcachedCacheEntryFactory,
final KeyHashingScheme keyHashingScheme) {
this.client = client;
this.maxUpdateRetries = config.getMaxUpdateRetries();
this.memcachedCacheEntryFactory = memcachedCacheEntryFactory;
this.keyHashingScheme = keyHashingScheme;
}
HttpCache.java 文件源码
项目:registry-core
阅读 19
收藏 0
点赞 0
评论 0
public HttpCache() {
CacheConfig cacheCfg =new CacheConfig();
cacheCfg.setMaxCacheEntries(1000);
cacheCfg.setMaxObjectSize(8192);
cachingClient = new CachingHttpClient(new DefaultHttpClient(), cacheCfg);
}
MemcachedHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 19
收藏 0
点赞 0
评论 0
/**
* Create a storage backend using the pre-configured given
* <i>memcached</i> client.
* @param cache client to use for communicating with <i>memcached</i>
*/
public MemcachedHttpCacheStorage(final MemcachedClientIF cache) {
this(cache, CacheConfig.DEFAULT, new MemcachedCacheEntryFactoryImpl(),
new SHA256KeyHashingScheme());
}
EhcacheHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 14
收藏 0
点赞 0
评论 0
/**
* Constructs a storage backend using the provided Ehcache
* with default configuration options.
* @param cache where to store cached origin responses
*/
public EhcacheHttpCacheStorage(final Ehcache cache) {
this(cache, CacheConfig.DEFAULT, new DefaultHttpCacheEntrySerializer());
}
EhcacheHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 15
收藏 0
点赞 0
评论 0
/**
* Constructs a storage backend using the provided Ehcache
* with the given configuration options.
* @param cache where to store cached origin responses
* @param config cache storage configuration options - note that
* the setting for max object size <b>will be ignored</b> and
* should be configured in the Ehcache instead.
*/
public EhcacheHttpCacheStorage(final Ehcache cache, final CacheConfig config){
this(cache, config, new DefaultHttpCacheEntrySerializer());
}
EhcacheHttpCacheStorage.java 文件源码
项目:purecloud-iot
阅读 15
收藏 0
点赞 0
评论 0
/**
* Constructs a storage backend using the provided Ehcache
* with the given configuration options, but using an alternative
* cache entry serialization strategy.
* @param cache where to store cached origin responses
* @param config cache storage configuration options - note that
* the setting for max object size <b>will be ignored</b> and
* should be configured in the Ehcache instead.
* @param serializer alternative serialization mechanism
*/
public EhcacheHttpCacheStorage(final Ehcache cache, final CacheConfig config, final HttpCacheEntrySerializer serializer){
this.cache = cache;
this.maxUpdateRetries = config.getMaxUpdateRetries();
this.serializer = serializer;
}