/** * Creates a new cached authenticator. * * @param metricRegistry the application's registry of metrics * @param authenticator the underlying authenticator * @param cacheSpec a {@link CaffeineSpec} */ public CachingAuthenticator(final MetricRegistry metricRegistry, final Authenticator<C, P> authenticator, final CaffeineSpec cacheSpec) { this(metricRegistry, authenticator, Caffeine.from(cacheSpec)); }
/** * Creates a new cached authorizer. * * @param metricRegistry the application's registry of metrics * @param authorizer the underlying authorizer * @param cacheSpec {@link CaffeineSpec} */ public CachingAuthorizer( final MetricRegistry metricRegistry, final Authorizer<P> authorizer, final CaffeineSpec cacheSpec) { this(metricRegistry, authorizer, Caffeine.from(cacheSpec)); }
/** * Set the {@link CaffeineSpec} to use for building each individual * {@link CaffeineCache} instance. * @see #createNativeCaffeineCache * @see com.github.benmanes.caffeine.cache.Caffeine#from(CaffeineSpec) */ public void setCaffeineSpec(CaffeineSpec caffeineSpec) { doSetCaffeine(Caffeine.from(caffeineSpec)); }
/** * Set the Caffeine cache specification String to use for building each * individual {@link CaffeineCache} instance. The given value needs to * comply with Caffeine's {@link CaffeineSpec} (see its javadoc). * @see #createNativeCaffeineCache * @see com.github.benmanes.caffeine.cache.Caffeine#from(String) */ public void setCacheSpecification(String cacheSpecification) { doSetCaffeine(Caffeine.from(cacheSpecification)); }
@Test(expectedExceptions = NullPointerException.class) public void fromSpec_null() { Caffeine.from((CaffeineSpec) null); }
@Test public void fromString_lenientParsing() { Caffeine.from("maximumSize=100").weigher((k, v) -> 0).build(); }
public void testMaximumSize_withoutWeigher() { Caffeine<Object, Object> builder = Caffeine.from(parse("maximumSize=9000")); builder.build(k -> null); }
public void testMaximumWeight_withoutWeigher() { Caffeine<Object, Object> builder = Caffeine.from(parse("maximumWeight=9000")); try { builder.build(k -> null); fail(); } catch (IllegalStateException expected) {} }
public void testParse_recordStats() { CaffeineSpec spec = parse("recordStats"); assertTrue(spec.recordStats); assertCaffeineEquivalence(Caffeine.newBuilder().recordStats(), 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_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_writeExpirationMinutes() { CaffeineSpec spec = parse("expireAfterWrite=10m"); assertEquals(TimeUnit.MINUTES, spec.expireAfterWriteTimeUnit); assertEquals(10L, spec.expireAfterWriteDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterWrite(10L, TimeUnit.MINUTES), Caffeine.from(spec)); }
public void testParse_accessExpirationSeconds() { CaffeineSpec spec = parse("expireAfterAccess=10s"); assertEquals(TimeUnit.SECONDS, spec.expireAfterAccessTimeUnit); assertEquals(10L, spec.expireAfterAccessDuration); assertCaffeineEquivalence( Caffeine.newBuilder().expireAfterAccess(10L, TimeUnit.SECONDS), Caffeine.from(spec)); }
public void testCaffeineFrom_string() { Caffeine<?, ?> fromString = Caffeine.from( "initialCapacity=10,maximumSize=20,weakKeys,weakValues,expireAfterAccess=10m"); Caffeine<?, ?> expected = Caffeine.newBuilder() .initialCapacity(10) .maximumSize(20) .weakKeys() .weakValues() .expireAfterAccess(10L, TimeUnit.MINUTES); assertCaffeineEquivalence(expected, fromString); }
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_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)); }
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_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_softValues() { CaffeineSpec spec = parse("softValues"); assertEquals(spec.initialCapacity, UNSET_INT); assertEquals(spec.maximumSize, UNSET_INT); assertEquals(spec.maximumWeight, UNSET_INT); assertNull(spec.keyStrength); assertEquals(Strength.SOFT, spec.valueStrength); assertNull(spec.expireAfterWriteTimeUnit); assertNull(spec.expireAfterAccessTimeUnit); assertNull(spec.refreshAfterWriteTimeUnit); assertCaffeineEquivalence( Caffeine.newBuilder().softValues(), Caffeine.from(spec)); }