View Javadoc

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