View Javadoc

1   package com.atlassian.vcache.internal.legacy;
2   
3   import com.atlassian.cache.CacheSettings;
4   import com.atlassian.cache.CacheSettingsBuilder;
5   import com.atlassian.cache.memory.MemoryCacheManager;
6   import com.atlassian.vcache.DirectExternalCache;
7   import com.atlassian.vcache.ExternalCacheSettings;
8   import com.atlassian.vcache.internal.RequestContext;
9   import com.atlassian.vcache.internal.RequestMetrics;
10  import com.atlassian.vcache.internal.core.DefaultRequestContext;
11  import com.atlassian.vcache.internal.core.Sha1ExternalCacheKeyGenerator;
12  import com.atlassian.vcache.internal.core.metrics.DefaultMetricsCollector;
13  import com.atlassian.vcache.internal.core.metrics.MetricsCollector;
14  import com.atlassian.vcache.internal.test.AbstractDirectExternalCacheIT;
15  
16  import java.util.Optional;
17  import java.util.concurrent.TimeUnit;
18  
19  public class LegacyDirectExternalCacheHackIT extends AbstractDirectExternalCacheIT {
20      private final RequestContext requestContext = new DefaultRequestContext(() -> "tenant-id-three");
21      private final MetricsCollector metricsCollector = new DefaultMetricsCollector(() -> requestContext);
22  
23      @Override
24      protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
25          final CacheSettings legacySettings = new CacheSettingsBuilder()
26                  .remote()
27                  .maxEntries(settings.getEntryCountHint().get())
28                  .expireAfterWrite(settings.getDefaultTtl().get().toNanos(), TimeUnit.NANOSECONDS)
29                  .build();
30  
31          return metricsCollector.wrap(
32                  new LegacyDirectExternalCache<>(
33                          new MemoryCacheManager().getCache(name, null, legacySettings),
34                          () -> requestContext,
35                          new Sha1ExternalCacheKeyGenerator("it-test-42"),
36                          Optional.empty(),
37                          new LegacyServiceSettingsBuilder().build()));
38      }
39  
40      @Override
41      protected RequestMetrics requestMetrics() {
42          return metricsCollector.obtainRequestMetrics(requestContext);
43      }
44  }