View Javadoc

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  }