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 }