private StableReadExternalCache<String> getCache(String cacheName) { return cacheFactory.getStableReadExternalCache( cacheName, serializableMarshaller(String.class), new ExternalCacheSettingsBuilder().build() ); }
@SuppressWarnings("unchecked") private StableReadExternalCache<ImmutableMap<String, ImmutableList<ImmutableMap<String, PageProperty>>>> createCache(VCacheFactory cacheFactory) { return cacheFactory.getStableReadExternalCache( CACHE_NAME, (Marshaller) serializableMarshaller(ImmutableMap.class), new ExternalCacheSettingsBuilder().build() ); }
public TwitterRenderer(I18NBeanFactory i18NBeanFactory, LocaleManager localeManager, VCacheFactory cacheFactory, PageBuilderService pageBuilderService, VelocityRenderService velocityRenderService, HttpRetrievalService httpRetrievalService) { this.i18NBeanFactory = i18NBeanFactory; this.localeManager = localeManager; this.pageBuilderService = pageBuilderService; this.velocityRenderService = velocityRenderService; this.httpRetrievalService = httpRetrievalService; this.cacheRef = Lazy.supplier(() -> cacheFactory.getStableReadExternalCache( CACHE_NAME, serializableMarshaller(TweetRetrievalResult.class), new ExternalCacheSettingsBuilder().build() )); }
@Test public void stablereadexternalcache_duplicate_obtain() { final StableReadExternalCache<String> firstTime = vCacheFactory().getStableReadExternalCache( "duplicate", dodgyPair("first"), new ExternalCacheSettingsBuilder().build()); final CompletionStage<Boolean> put1 = firstTime.put("key", "ignored", PUT_ALWAYS); assertThat(VCacheUtils.unsafeJoin(put1), is(true)); forceNewRequestContext(); final CompletionStage<Optional<String>> get1 = firstTime.get("key"); assertThat(VCacheUtils.unsafeJoin(get1), is(Optional.of("first"))); final StableReadExternalCache<String> secondTime = vCacheFactory().getStableReadExternalCache( "duplicate", dodgyPair("second"), new ExternalCacheSettingsBuilder().build()); forceNewRequestContext(); final CompletionStage<Optional<String>> get2 = secondTime.get("key"); assertThat(VCacheUtils.unsafeJoin(get2), is(Optional.of("second"))); }
@Test public void stableReadExternalCache_normal_marshalling() { final ExternalCacheSettings settings = new ExternalCacheSettingsBuilder() .defaultTtl(Duration.ofSeconds(60)) .entryGrowthRateHint(ChangeRate.LOW_CHANGE) .dataChangeRateHint(ChangeRate.LOW_CHANGE) .entryCountHint(100) .build(); final StableReadExternalCache<String> cache = vCacheFactory().getStableReadExternalCache( "my-stable-read-cache", StringMarshalling.pair(), settings); assertThat(cache, notNullValue()); assertThat(cache.getName(), is("my-stable-read-cache")); final CompletionStage<Void> rmall = cache.removeAll(); assertThat(rmall, successful()); final CompletionStage<Boolean> put1 = cache.put("three", "drei", PUT_ALWAYS); assertThat(put1, successfulWith(is(true))); final CompletionStage<Optional<String>> get1 = cache.get("three"); assertThat(get1, successfulWith(is(Optional.of("drei")))); assertThat(invocationsOfBegunTxns, is(0)); }
@Test public void stableReadExternalCache_normal_marshaller() { final ExternalCacheSettings settings = new ExternalCacheSettingsBuilder() .defaultTtl(Duration.ofSeconds(60)) .entryGrowthRateHint(ChangeRate.LOW_CHANGE) .dataChangeRateHint(ChangeRate.LOW_CHANGE) .entryCountHint(100) .build(); @SuppressWarnings("deprecation") final StableReadExternalCache<String> cache = vCacheFactory().getStableReadExternalCache( "my-stable-read-cache", MarshallerFactory.stringMarshaller(), settings); assertThat(cache, notNullValue()); assertThat(cache.getName(), is("my-stable-read-cache")); final CompletionStage<Void> rmall = cache.removeAll(); assertThat(rmall, successful()); final CompletionStage<Boolean> put1 = cache.put("three", "drei", PUT_ALWAYS); assertThat(put1, successfulWith(is(true))); final CompletionStage<Optional<String>> get1 = cache.get("three"); assertThat(get1, successfulWith(is(Optional.of("drei")))); assertThat(invocationsOfBegunTxns, is(0)); }
@Test public void handle_legal_recursive_get_supplier() { final ExternalCacheSettings settings = new ExternalCacheSettingsBuilder() .defaultTtl(Duration.ofSeconds(60)) .entryGrowthRateHint(ChangeRate.LOW_CHANGE) .dataChangeRateHint(ChangeRate.LOW_CHANGE) .entryCountHint(100) .build(); final StableReadExternalCache<String> cache = vCacheFactory().getStableReadExternalCache( "my-stable-read-cache", StringMarshalling.pair(), settings); final CompletionStage<String> get1 = cache.get("recursive", () -> "ignored-" + unsafeJoin(cache.get("recursive", () -> "2"))); assertThat(get1, successfulWith(is("2"))); }
@Test public void handle_legal_recursive_get_supplier2() { final ExternalCacheSettings settings = new ExternalCacheSettingsBuilder() .defaultTtl(Duration.ofSeconds(60)) .entryGrowthRateHint(ChangeRate.LOW_CHANGE) .dataChangeRateHint(ChangeRate.LOW_CHANGE) .entryCountHint(100) .build(); final StableReadExternalCache<String> cache = vCacheFactory().getStableReadExternalCache( "my-stable-read-cache", StringMarshalling.pair(), settings); final CompletionStage<String> get1 = cache.get("recursive", () -> unsafeJoin(cache.get("recursive2", () -> "pass"))); assertThat(get1, successfulWith(is("pass"))); } }
@Test public void duplicate_names_different_policys() { final DirectExternalCache<String> directCache = vCacheFactory().getDirectExternalCache( "duplicate", StringMarshalling.pair(), new ExternalCacheSettingsBuilder().build()); thrown.expect(ExternalCacheException.class); thrown.expectMessage("Failed due to CREATION_FAILURE"); final StableReadExternalCache<String> stableCache = vCacheFactory().getStableReadExternalCache( "duplicate", StringMarshalling.pair(), new ExternalCacheSettingsBuilder().build()); }