1 package com.atlassian.vcache.internal.guava;
2
3 import com.atlassian.vcache.DirectExternalCache;
4 import com.atlassian.vcache.ExternalCacheSettings;
5 import com.atlassian.vcache.internal.RequestContext;
6 import com.atlassian.vcache.internal.RequestMetrics;
7 import com.atlassian.vcache.internal.core.DefaultRequestContext;
8 import com.atlassian.vcache.internal.core.Sha1ExternalCacheKeyGenerator;
9 import com.atlassian.vcache.internal.core.metrics.DefaultMetricsCollector;
10 import com.atlassian.vcache.internal.core.metrics.MetricsCollector;
11 import com.atlassian.vcache.internal.test.AbstractDirectExternalCacheIT;
12
13 import java.time.Duration;
14 import java.util.Optional;
15
16 public class GuavaDirectExternalCacheHackIT extends AbstractDirectExternalCacheIT {
17 private final RequestContext requestContext = new DefaultRequestContext("tenant-id");
18 private final MetricsCollector metricsCollector = new DefaultMetricsCollector(() -> requestContext);
19
20 @Override
21 protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
22 return metricsCollector.wrap(
23 new GuavaDirectExternalCache<>(
24 name,
25 GuavaUtils.buildDelegate(settings),
26 () -> requestContext,
27 new Sha1ExternalCacheKeyGenerator("it-test-42"),
28 Optional.empty(),
29 Duration.ofSeconds(1)));
30 }
31
32 @Override
33 protected RequestMetrics requestMetrics() {
34 return metricsCollector.obtainRequestMetrics(requestContext);
35 }
36 }