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 }