@Override public Optional<ClientConfig> getClientConfig(ChannelHandlerContext ctx, Request request) { // get/create the cachedClientConfig that is instanced per server channel IntObjectMap<Optional<ClientConfig>> cachedClientConfig = ctx.channel().attr(ROUND_ROBIN_KEY).get(); if (cachedClientConfig == null) { cachedClientConfig = new IntObjectHashMap<>(); ctx.channel().attr(ROUND_ROBIN_KEY).set(cachedClientConfig); } return getClientConfig(cachedClientConfig, request); }
ClientConfig result1 = subject.getClientConfig(cacheMap, request1).orElse(null); assertEquals(clientConfig1, result1); ClientConfig result2 = subject.getClientConfig(cacheMap, request2).orElse(null); assertEquals(clientConfig1, result2); ClientConfig result3 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig1, result3);
ClientConfig result1 = subject.getClientConfig(cacheMap, request1).orElse(null); assertEquals(clientConfig1, result1); ClientConfig result2 = subject.getClientConfig(cacheMap, request2).orElse(null); assertEquals(clientConfig2, result2); ClientConfig result3 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig3, result3); ClientConfig result4 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig1, result4);
ClientConfig result1 = subject.getClientConfig(cacheMap, request1).orElse(null); assertEquals(clientConfig1, result1); ClientConfig result2 = subject.getClientConfig(cacheMap, request2).orElse(null); assertEquals(clientConfig2, result2); ClientConfig result3 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig3, result3); ClientConfig result4 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig1, result4);
ClientConfig result1 = subject.getClientConfig(cacheMap, request1).orElse(null); assertEquals(clientConfig1, result1); ClientConfig result2 = subject.getClientConfig(cacheMap, request2).orElse(null); assertEquals(clientConfig1, result2); ClientConfig result3 = subject.getClientConfig(cacheMap, request3).orElse(null); assertEquals(clientConfig1, result3);
ClientConfig result1a = subject.getClientConfig(cacheMap, request1a).orElse(null); assertEquals(clientConfig1, result1a); ClientConfig result1b = subject.getClientConfig(cacheMap, request1b).orElse(null); assertEquals(clientConfig2, result1b); ClientConfig result2a = subject.getClientConfig(cacheMap, request2a).orElse(null); assertEquals(clientConfig1, result2a); ClientConfig result2b = subject.getClientConfig(cacheMap, request2b).orElse(null); assertEquals(clientConfig2, result2b); ClientConfig result3a = subject.getClientConfig(cacheMap, request3a).orElse(null); assertEquals(clientConfig1, result3a); ClientConfig result3b = subject.getClientConfig(cacheMap, request3b).orElse(null); assertEquals(clientConfig2, result3b);
ClientConfig result1a = subject.getClientConfig(cacheMap, request1a).orElse(null); assertEquals(clientConfig1, result1a); ClientConfig result1b = subject.getClientConfig(cacheMap, request1b).orElse(null); assertEquals(clientConfig2, result1b); ClientConfig result2a = subject.getClientConfig(cacheMap, request2a).orElse(null); assertEquals(clientConfig1, result2a); ClientConfig result2b = subject.getClientConfig(cacheMap, request2b).orElse(null); assertEquals(clientConfig2, result2b); ClientConfig result3a = subject.getClientConfig(cacheMap, request3a).orElse(null); assertEquals(clientConfig1, result3a); ClientConfig result3b = subject.getClientConfig(cacheMap, request3b).orElse(null); assertEquals(clientConfig2, result3b);