[infinispan-issues] [JBoss JIRA] (ISPN-5704) Enhancements for Functional Map API

Galder Zamarreño (JIRA) issues at jboss.org
Wed Sep 30 11:41:00 EDT 2015


    [ https://issues.jboss.org/browse/ISPN-5704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13113869#comment-13113869 ] 

Galder Zamarreño commented on ISPN-5704:
----------------------------------------

Use case: we want to add an element to a List and the list is stored as V in the functional map. You could try using this function:
{code}
<R> CompletableFuture<R> eval(K key, V value, BiFunction<V, ReadWriteEntryView<K, V>, R> f)
{code}
But the problem is that the element to add to the list can't be passed in {{value}} since V is List and not the individual element. Could we have a more flexible value type? Could we have this?
{code}
<R, T> CompletableFuture<R> eval(K key, T value, BiFunction<T, ReadWriteEntryView<K, V>, R> f)
{code}
The problem then would be that we could not call {{view.set(value)}}... It needs some thought.


> Enhancements for Functional Map API
> -----------------------------------
>
>                 Key: ISPN-5704
>                 URL: https://issues.jboss.org/browse/ISPN-5704
>             Project: Infinispan
>          Issue Type: Enhancement
>            Reporter: Galder Zamarreño
>            Assignee: Galder Zamarreño
>             Fix For: 8.1.0.Final
>
>
> List of enhancements that didn't make it into 8.0:
> * Transaction support.
> * Verify locks are acquired for all operations (once tx is in place, locks can be checked easily)
> * Complete persistence support (remove many returning previous, put many returning previous, remove many)
> * Replication of per-invocation parameters.
> * Port mode *Becoming*Test to functional APIs, and expand on testing other functional APIs.
> * Test interoperability with cache, e.g. cache put with lifespan can be retrieved via functional map with lifespan, and viceversa 
> * Test compatibility mode
> * Add more listener events: activation, passivation and expiration.
> * Use check isLocal instead of `e == null` in command impls
> * Fix branch skip issue (see previous PR: https://github.com/infinispan/infinispan/pull/3571)
> * Add externalizers for primitive versions of Optional.
> * ValueMatcherMode indexes in MarshallableFunctionExternalizers should be based on {{ordinal()}} calls to annotation. Also, could the core's enumeration use the annotations defined in commons?
> * Add AdvancedExternalizer version for functions that takes value matcher



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the infinispan-issues mailing list