View Javadoc

1   package com.atlassian.vcache.internal.redis;
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 org.junit.BeforeClass;
11  import redis.clients.jedis.JedisPool;
12  import redis.clients.jedis.JedisPoolConfig;
13  
14  import java.io.IOException;
15  import java.net.URI;
16  import java.net.URISyntaxException;
17  import java.util.concurrent.ExecutionException;
18  
19  public class RedisDirectExternalCacheIT extends AbstractDirectExternalCacheIT {
20      private static JedisPool jedisPool;
21      private final RequestContext requestContext = new DefaultRequestContext("tenant-id");
22  
23      @BeforeClass
24      public static void init_client() throws IOException, URISyntaxException {
25          final JedisPoolConfig poolConfig = new JedisPoolConfig();
26          poolConfig.setMaxTotal(1); // only allow one connection to check for connection leaks
27          jedisPool = new JedisPool(poolConfig, new URI(System.getProperty("redis.svr")));
28      }
29  
30      @Override
31      protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
32          return new RedisDirectExternalCache<>(
33                  jedisPool::getResource,
34                  () -> requestContext,
35                  new Sha1ExternalCacheKeyGenerator("it-test-42"),
36                  name,
37                  JavaSerializationMarshalling.pair(String.class),
38                  settings);
39      }
40  
41      @Override
42      public void exact_getIdentified_removeIf() throws ExecutionException, InterruptedException {
43          // not supported
44      }
45  
46      @Override
47      public void exact_getIdentified_replaceIf() throws ExecutionException, InterruptedException {
48          // not supported
49      }
50  }