Details
-
Enhancement
-
Resolution: Done
-
Major
-
None
-
None
-
None
Description
Several TODOs:
- Transaction's lookedUpEntries, affected and lockedKeys should use equivalent collections
Change equivalent hash set to be based on JSR-166<- done in https://github.com/infinispan/infinispan/commit/c714c7785a302cb228bc8f293ce5eadc64dc125bMake CollectionFactory a per cache component and contain references to key/value equivalence<- deleted since it complicates the code and does not really add value- figure out a way to have comparable ByteArrayEquivalence implementation and uncomment tests
MetadataMortalCacheValue should extend MortalCacheValue, check others<- That should not be the case because MetadataMortalCacheValue has metadata (which contains lifespan), and extending MortalCacheValue would add lifespan too, as separate reference, so MetadataMortalCacheValue extending MortalCacheValue would add an extra field to the object without any real benefit.- EntryFactoryImpl.extractMetadata: "this is invoked from wrapEntryForPut and wrapEntryForReplace. Better make these two methods receive the metadata object directly from the caller, which is aware of these commands being MetadataAwareCommand, in order to avoid the not-so-nice instanceOf."
- Have `Builder lifespan(long time);` in Metadata builder interface and same for maxIdle.
- The simple cache.put(k,v) (and all other non-metadata bearing methods) create an immutable metadata object that always has the same (default) values for idle and expiry. This can be an single object instance instead of creating one per operation.