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.marshalling.jdk.StringMarshalling;
7   import com.atlassian.vcache.DirectExternalCache;
8   import com.atlassian.vcache.ExternalCacheSettings;
9   import com.atlassian.vcache.internal.RequestContext;
10  import com.atlassian.vcache.internal.core.DefaultRequestContext;
11  import com.atlassian.vcache.internal.core.Sha1ExternalCacheKeyGenerator;
12  import com.atlassian.vcache.internal.test.AbstractDirectExternalCacheIT;
13  
14  import java.util.Optional;
15  import java.util.concurrent.TimeUnit;
16  
17  public class LegacyDirectExternalCacheIT extends AbstractDirectExternalCacheIT {
18      private final RequestContext requestContext = new DefaultRequestContext("tenant-id");
19  
20      @Override
21      protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
22          final CacheSettings legacySettings = new CacheSettingsBuilder()
23                  .remote()
24                  .maxEntries(settings.getEntryCountHint().get())
25                  .expireAfterWrite(settings.getDefaultTtl().get().toNanos(), TimeUnit.NANOSECONDS)
26                  .build();
27  
28          return new LegacyDirectExternalCache<>(
29                  new MemoryCacheManager().getCache(name, null, legacySettings),
30                  () -> requestContext,
31                  new Sha1ExternalCacheKeyGenerator("it-test-42"),
32                  Optional.of(StringMarshalling.pair()),
33                  new LegacyServiceSettingsBuilder().build());
34      }
35  }