Hi all,
Since Java 8, some new methods are available in the ConcurrentMap
interface: merge, compute, computeIfAbsent, computeIfPresent, forEach,
replaceAll. ConcurrentMap interface provides a default implementation.
I'm working on
https://issues.jboss.org/browse/ISPN-5728 in order to
provide the infinispan specific implementation. The issue here is that to
make it work, these lambdas must be Serializables, so actual code using
these methods and not passing serializables lambdas will break.
I see two possibilities here, please fell free to suggest any other idea.
1) Override the default implementation and specify on the release that all
the lambdas must be serializables from now on ... ?
2) Leave the implementation of the default methods as they are and provide
new methods implemented the infinispan way :
V compute(K key, V compute(K key,
SerializableBiFunction<? super K, ? super V, ?
extends V> remappingFunction)
What do you think ?
-- Katia