poolConfig.maxTotal = policy.getMaxNumServiceInstances(); poolConfig.numTestsPerEvictionRun = policy.getMaxNumServiceInstances(); poolConfig.minEvictableIdleTimeMillis = policy.getMaxServiceInstanceIdleTime(TimeUnit.MILLISECONDS); switch (policy.getCacheExhaustionAction()) { case FAIL: poolConfig.whenExhaustedAction = GenericKeyedObjectPool.WHEN_EXHAUSTED_FAIL; poolConfig.maxActive = policy.getMaxNumServiceInstancesPerEndPoint(); poolConfig.maxIdle = policy.getMaxNumServiceInstancesPerEndPoint(); poolConfig.numTestsPerEvictionRun = policy.getMaxNumServiceInstances(); _evictionFuture = (policy.getMaxNumServiceInstances() != 0) || (policy.getMaxNumServiceInstancesPerEndPoint() != 0) || (policy.getMaxServiceInstanceIdleTime(TimeUnit.MILLISECONDS) > 0) ? executor.scheduleAtFixedRate(new Runnable() { @Override
public ServiceCache<S> build() { checkNotNull(_cachingPolicy, "cachingPolicy"); if (_cachingPolicy.useMultiThreadedClientPolicy()) { checkNotNull(_serviceFactory, "serviceFactory"); checkArgument((_serviceFactory instanceof MultiThreadedServiceFactory), "Please implement MultiThreadedServiceFactory to construct MultiThreadedClientServiceCache"); return new MultiThreadedClientServiceCache<>((MultiThreadedServiceFactory<S>) _serviceFactory, _metricRegistry); } else { checkNotNull(_serviceFactory, "serviceFactory"); checkNotNull(_metricRegistry, "metricRegistry"); return new SingleThreadedClientServiceCache<>(_cachingPolicy, _serviceFactory, _metricRegistry); } }
poolConfig.maxTotal = policy.getMaxNumServiceInstances(); poolConfig.numTestsPerEvictionRun = policy.getMaxNumServiceInstances(); poolConfig.minEvictableIdleTimeMillis = policy.getMaxServiceInstanceIdleTime(TimeUnit.MILLISECONDS); switch (policy.getCacheExhaustionAction()) { case FAIL: poolConfig.whenExhaustedAction = GenericKeyedObjectPool.WHEN_EXHAUSTED_FAIL; poolConfig.maxActive = policy.getMaxNumServiceInstancesPerEndPoint(); poolConfig.maxIdle = policy.getMaxNumServiceInstancesPerEndPoint(); poolConfig.numTestsPerEvictionRun = policy.getMaxNumServiceInstances(); _evictionFuture = (policy.getMaxNumServiceInstances() != 0) || (policy.getMaxNumServiceInstancesPerEndPoint() != 0) || (policy.getMaxServiceInstanceIdleTime(TimeUnit.MILLISECONDS) > 0) ? executor.scheduleAtFixedRate(new Runnable() { @Override
public ServiceCache<S> build() { checkNotNull(_cachingPolicy, "cachingPolicy"); if (_cachingPolicy.useMultiThreadedClientPolicy()) { checkNotNull(_serviceFactory, "serviceFactory"); checkArgument((_serviceFactory instanceof MultiThreadedServiceFactory), "Please implement MultiThreadedServiceFactory to construct MultiThreadedClientServiceCache"); return new MultiThreadedClientServiceCache<>((MultiThreadedServiceFactory<S>) _serviceFactory, _metricRegistry); } else { checkNotNull(_serviceFactory, "serviceFactory"); checkNotNull(_metricRegistry, "metricRegistry"); return new SingleThreadedClientServiceCache<>(_cachingPolicy, _serviceFactory, _metricRegistry); } }