protected CacheBuilder initCache()

in jetcache-starter/jetcache-autoconfigure/src/main/java/com/alicp/jetcache/autoconfigure/RedisAutoConfiguration.java [64:106]


        protected CacheBuilder initCache(ConfigTree ct, String cacheAreaWithPrefix) {
            Object jedisObj = parsePool(ct);
            boolean readFromSlave = Boolean.parseBoolean(ct.getProperty("readFromSlave", "False"));

            RedisCacheBuilder.RedisCacheBuilderImpl builder = RedisCacheBuilder.createRedisCacheBuilder()
                    .readFromSlave(readFromSlave);
            if (jedisObj instanceof Pool) {
                builder.jedisPool((Pool<Jedis>) jedisObj);
            } else {
                builder.jedis((UnifiedJedis) jedisObj);
            }

            ConfigTree slaves = ct.subTree("slaves.");
            Set<String> slaveNames = slaves.directChildrenKeys();
            if (slaveNames.size() > 0) {
                List<Object> slavesObjects = new ArrayList<>();
                int[] slavesWeights = new int[slaveNames.size()];
                int i = 0;
                for (String slaveName: slaveNames) {
                    ConfigTree slaveConfig = slaves.subTree(slaveName + ".");
                    slavesObjects.add(parsePool(slaveConfig));
                    slavesWeights[i] = Integer.parseInt(slaveConfig.getProperty("weight","100"));
                    i++;
                }

                builder.slaveReadWeights(slavesWeights);
                if (slavesObjects.get(0) instanceof Pool) {
                    builder.jedisSlavePools(slavesObjects.toArray(new Pool[0]));
                } else {
                    builder.slaves(slavesObjects.toArray(new UnifiedJedis[0]));
                }
            }

            parseGeneralConfig(builder, ct);

            // eg: "jedisPool.remote.default"
            autoConfigureBeans.getCustomContainer().put("jedisPool." + cacheAreaWithPrefix, jedisObj);
            if (jedisObj instanceof UnifiedJedis) {
                autoConfigureBeans.getCustomContainer().put("jedis." + cacheAreaWithPrefix, jedisObj);
            }

            return builder;
        }