View Javadoc

1   package com.atlassian.vcache.internal.memcached;
2   
3   import com.atlassian.marshalling.jdk.JavaSerializationMarshalling;
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.core.DefaultRequestContext;
8   import com.atlassian.vcache.internal.core.Sha1ExternalCacheKeyGenerator;
9   import com.atlassian.vcache.internal.test.AbstractDirectExternalCacheIT;
10  import net.spy.memcached.AddrUtil;
11  import net.spy.memcached.BinaryConnectionFactory;
12  import net.spy.memcached.MemcachedClient;
13  import org.junit.BeforeClass;
14  
15  import java.io.IOException;
16  
17  public class MemcachedDirectExternalCacheIT extends AbstractDirectExternalCacheIT {
18      private static MemcachedClient client;
19      private final RequestContext requestContext = new DefaultRequestContext("tenant-id");
20  
21      @BeforeClass
22      public static void init_client() throws IOException {
23          client = new MemcachedClient(
24                  new BinaryConnectionFactory(),
25                  AddrUtil.getAddresses(System.getProperty("memcached.svr")));
26      }
27  
28      @Override
29      protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
30          return new MemcachedDirectExternalCache<>(
31                  () -> client,
32                  () -> requestContext,
33                  new Sha1ExternalCacheKeyGenerator("it-test-42"),
34                  name, JavaSerializationMarshalling.pair(String.class), settings);
35      }
36  }