Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3108

Server endpoint compatibility enhancements


    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 5.3.0.CR1, 5.3.0.Final
    • None
    • None
    • None

      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/c714c7785a302cb228bc8f293ce5eadc64dc125b
      • Make 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.

            rh-ee-galder Galder ZamarreƱo
            rh-ee-galder Galder ZamarreƱo
            0 Vote for this issue
            1 Start watching this issue