View Javadoc

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