Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-9620 In-place Rolling Upgrade Marshaller Changes
  3. ISPN-9846

Ensure Backwards Compatibility with Persistence SPI changes

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Sub-task Sub-task
    • Resolution: Done
    • Icon: Major Major
    • 10.0.0.Final
    • 10.0.0.Final
    • Loaders and Stores
    • None

      ISPN-9693 deprecated the org.infinispan.marshall.core.MarshalledEntry interface in favour of org.infinispan.persistence.spi.MarshalledEntry, however this breaks compatibility with 9.4.x stores as the method signatures of the various store/loader interfaces changed.

      Therefore, to aid with enabling backwards compatibility it is necessary to change spi.MarshalledEntry to spi.MarshallableEntry as well as the corresponding factory. This is necessary as the InitializationContext previously exposed marshall.core.MarshalledEntry and the naming change provides us an easy way to differentiate the context methods as we can't have two getMarshalledEntryFactory methods due to type erasure.

      Due to type erasure it is also necessary to introduce several new methods to the writer/loader methods. Deprecated/Replacement method list below:

      • CacheLoader MarshalledEntry load(Object) -> MarshallableEntry loadEntry(Object)
      • AdvancedCacheLoader Publisher<MarshalledEntry<K, V>> publishEntries(..) -> Publisher<MarshallableEntry<K, V>> entryPublisher(...)
      • CacheWriter writeBatch(Iterable<MarshalledEntry>) > writeBulk(Publisher) InitializationContextgetMarshalledEntryFactory->getMarshallableEntryFactory`

              remerson@redhat.com Ryan Emerson
              remerson@redhat.com Ryan Emerson
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: