Traversable<String> previousValues = readWriteMap.evalMany(data, (v, readWriteView) -> { String prev = readWriteView.find().orElse(null); readWriteView.set(v, new MetaLifespan(Duration.ofHours(1).toMillis())); return prev; });
@Test public void testAddFindMetaParam() { MetaParams metas = MetaParams.empty(); MetaLifespan lifespan = new MetaLifespan(1000); metas.add(lifespan); assertFalse(metas.isEmpty()); assertEquals(1, metas.size()); Optional<MetaLifespan> lifespanFound = metas.find(MetaLifespan.class); assertEquals(new MetaLifespan(1000), lifespanFound.get()); assertEquals(1000, metas.find(MetaLifespan.class).get().get().longValue()); assertFalse(new MetaLifespan(900).equals(lifespanFound.get())); metas.add(new MetaLifespan(900)); assertFalse(metas.isEmpty()); assertEquals(1, metas.size()); assertEquals(Optional.of(new MetaLifespan(900)), metas.find(lifespan.getClass())); }
Traversable<String> previousValues = readWriteMap.evalMany(data, (v, readWriteView) -> { String prev = readWriteView.find().orElse(null); readWriteView.set(v, new MetaLifespan(Duration.ofHours(1).toMillis())); return prev; });
/** * Base transactional region constructor * @param cache instance to store transactional data * @param name of the transactional region * @param transactionManager * @param metadata for the transactional region * @param factory for the transactional region * @param cacheKeysFactory factory for cache keys */ public BaseTransactionalDataRegion( AdvancedCache cache, String name, TransactionManager transactionManager, CacheDataDescription metadata, InfinispanRegionFactory factory, CacheKeysFactory cacheKeysFactory) { super( cache, name, transactionManager, factory); this.metadata = metadata; this.cacheKeysFactory = cacheKeysFactory; localCache = cache.withFlags(Flag.CACHE_MODE_LOCAL); Configuration configuration = cache.getCacheConfiguration(); requiresTransaction = configuration.transaction().transactionMode().isTransactional() && !configuration.transaction().autoCommit(); tombstoneExpiration = factory.getPendingPutsCacheConfiguration().expiration().maxIdle(); if (!isRegionAccessStrategyEnabled()) { strategy = Strategy.NONE; } expiringMetaParam = new MetaParam.MetaLifespan(tombstoneExpiration); }
/** * Write-only allows for non-capturing values to be written along with metadata, * and read-only allows for both values and metadata to be retrieved. */ private <K> void doWriteValueAndReadValueAndMetadata(Supplier<K> keySupplier, ReadOnlyMap<K, String> map1, WriteOnlyMap<K, String> map2) { K key = keySupplier.get(); await( map2.eval(key, "one", SetValueAndConstantLifespan.getInstance()).thenCompose(r -> map1.eval(key, identity()).thenAccept(ro -> { assertNull(r); assertEquals(Optional.of("one"), ro.find()); assertEquals("one", ro.get()); assertEquals(Optional.of(new MetaLifespan(100000)), ro.findMetaParam(MetaLifespan.class)); } ) ) ); }
@Test public void testReplaceFindMultipleMetaParams() { MetaParams metas = MetaParams.empty(); metas.addMany(new MetaLifespan(1000), new MetaMaxIdle(1000), new MetaEntryVersion(new NumericVersion(12345))); assertFalse(metas.isEmpty()); assertEquals(3, metas.size()); metas.addMany(new MetaLifespan(2000), new MetaMaxIdle(2000)); assertFalse(metas.isEmpty()); assertEquals(3, metas.size()); assertEquals(Optional.of(new MetaMaxIdle(2000)), metas.find(MetaMaxIdle.class)); assertEquals(Optional.of(new MetaLifespan(2000)), metas.find(MetaLifespan.class)); assertEquals(Optional.of(new MetaEntryVersion(new NumericVersion(12345))), metas.find(MetaEntryVersion.class)); }
private MetaLifespan createMetaLifespan(long lifespan, TimeUnit lifespanUnit) { return new MetaLifespan(lifespanUnit.toMillis(lifespan)); }
@Test public void testConstructors() { MetaParams metasOf1 = MetaParams.of(new MetaCreated(1000)); assertFalse(metasOf1.isEmpty()); assertEquals(1, metasOf1.size()); MetaParams metasOf2 = MetaParams.of(new MetaCreated(1000), new MetaLastUsed(2000)); assertFalse(metasOf2.isEmpty()); assertEquals(2, metasOf2.size()); MetaParams metasOf4 = MetaParams.of( new MetaCreated(1000), new MetaLastUsed(2000), new MetaLifespan(3000), new MetaMaxIdle(4000)); assertFalse(metasOf4.isEmpty()); assertEquals(4, metasOf4.size()); }
@Test public void testAddFindMultipleMetaParams() { MetaParams metas = MetaParams.empty(); metas.addMany(new MetaLifespan(1000), new MetaMaxIdle(1000), new MetaEntryVersion(new NumericVersion(12345))); assertFalse(metas.isEmpty()); assertEquals(3, metas.size()); Optional<MetaMaxIdle> maxIdle = metas.find(MetaMaxIdle.class); Optional<MetaEntryVersion> entryVersion = metas.find(MetaEntryVersion.class); assertEquals(Optional.of(new MetaMaxIdle(1000)), maxIdle); assertFalse(900 == maxIdle.get().get().longValue()); assertEquals(new MetaEntryVersion(new NumericVersion(12345)), entryVersion.get()); assertFalse(new MetaEntryVersion(new NumericVersion(23456)).equals(entryVersion.get())); }
@Override public void accept(V v, WriteEntryView<K, V> wo) { wo.set(v, new MetaLifespan(100000)); }