@Override public CaffeineSpec deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { final String text = jp.getText(); if ("off".equalsIgnoreCase(text) || "disabled".equalsIgnoreCase(text)) { return CaffeineSpec.parse("initialCapacity=0,maximumSize=0"); } return CaffeineSpec.parse(text); } }
/** * Constructs a new {@code Caffeine} instance with the settings specified in {@code spec}. * * @param spec a String in the format specified by {@link CaffeineSpec} * @return a new instance with the specification's settings */ @NonNull public static Caffeine<Object, Object> from(String spec) { return from(CaffeineSpec.parse(spec)); }
public void testParse_maximumWeightRepeated() { try { parse("maximumWeight=10, maximumWeight=20"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_weakValuesCannotHaveValue() { try { parse("weakValues=true"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_recordStatsValueSpecified() { try { parse("recordStats=True"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_repeatedKeyStrength() { try { parse("weakKeys, weakKeys"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_writeExpirationRepeated() { try { parse( "expireAfterWrite=10s,expireAfterWrite=10m"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_recordStatsRepeated() { try { parse("recordStats,recordStats"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_initialCapacityRepeated() { try { parse("initialCapacity=10, initialCapacity=20"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_maximumSizeAndMaximumWeight() { try { parse("maximumSize=10, maximumWeight=20"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
public void testParse_accessExpirationRepeated() { try { parse( "expireAfterAccess=10s,expireAfterAccess=10m"); fail("Expected exception"); } catch (IllegalArgumentException expected) { // expected } }
@Test public void changeCaffeineSpecRecreateCache() { CaffeineCacheManager cm = new CaffeineCacheManager("c1"); Cache cache1 = cm.getCache("c1"); cm.setCaffeineSpec(CaffeineSpec.parse("maximumSize=10")); Cache cache1x = cm.getCache("c1"); assertTrue(cache1x != cache1); }
public void testParse_accessExpirationHours() { CaffeineSpec spec = parse("expireAfterAccess=150h"); assertEquals(TimeUnit.HOURS, spec.expireAfterAccessTimeUnit); assertEquals(150L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(150L, TimeUnit.HOURS), Caffeine.from(spec)); }
public void testParse_writeExpirationSeconds() { CaffeineSpec spec = parse("expireAfterWrite=10s"); assertEquals(TimeUnit.SECONDS, spec.expireAfterWriteTimeUnit); assertEquals(10L, spec.expireAfterWriteDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterWrite(10L, TimeUnit.SECONDS), Caffeine.from(spec)); }
public void testParse_writeExpirationHours() { CaffeineSpec spec = parse("expireAfterWrite=150h"); assertEquals(TimeUnit.HOURS, spec.expireAfterWriteTimeUnit); assertEquals(150L, spec.expireAfterWriteDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterWrite(150L, TimeUnit.HOURS), Caffeine.from(spec)); }
public void testParse_accessExpirationMinutes() { CaffeineSpec spec = parse("expireAfterAccess=10m"); assertEquals(TimeUnit.MINUTES, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(10L, TimeUnit.MINUTES), Caffeine.from(spec)); }
public void testParse_accessExpirationAndWriteExpiration() { CaffeineSpec spec = parse("expireAfterAccess=10s,expireAfterWrite=9m"); assertEquals(TimeUnit.MINUTES, spec.expireAfterWriteTimeUnit); assertEquals(9L, spec.expireAfterWriteDuration); assertEquals(TimeUnit.SECONDS, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder() .expireAfterAccess(10L, TimeUnit.SECONDS) .expireAfterWrite(9L, TimeUnit.MINUTES), Caffeine.from(spec)); }
public void testParse_empty() { CaffeineSpec spec = parse(""); assertEquals(spec.initialCapacity, UNSET_INT); assertEquals(spec.maximumSize, UNSET_INT); assertEquals(spec.maximumWeight, UNSET_INT); assertNull(spec.keyStrength); assertNull(spec.valueStrength); assertNull(spec.expireAfterAccessTimeUnit); assertNull(spec.expireAfterWriteTimeUnit); assertNull(spec.refreshAfterWriteTimeUnit); assertCaffeineEquivalence(Caffeine.newBuilder(), Caffeine.from(spec)); }
public void testParse_maximumSize() { CaffeineSpec spec = parse("maximumSize=9000"); assertEquals(spec.initialCapacity, UNSET_INT); assertEquals(9000, spec.maximumSize); assertNull(spec.keyStrength); assertNull(spec.valueStrength); assertNull(spec.expireAfterWriteTimeUnit); assertNull(spec.expireAfterAccessTimeUnit); assertNull(spec.refreshAfterWriteTimeUnit); assertCaffeineEquivalence( Caffeine.newBuilder().maximumSize(9000), Caffeine.from(spec)); }
public void testParse_maximumWeight() { CaffeineSpec spec = parse("maximumWeight=9000"); assertEquals(spec.initialCapacity, UNSET_INT); assertEquals(9000, spec.maximumWeight); assertNull(spec.keyStrength); assertNull(spec.valueStrength); assertNull(spec.expireAfterWriteTimeUnit); assertNull(spec.expireAfterAccessTimeUnit); assertNull(spec.refreshAfterWriteTimeUnit); assertCaffeineEquivalence( Caffeine.newBuilder().maximumWeight(9000), Caffeine.from(spec)); }