]
Vittorio Rigamonti updated ISPN-5849:
-------------------------------------
Fix Version/s: 9.0.0.Alpha2
(was: 9.0.0.Alpha1)
AutoCloseable return from adding listeners can be clunky to use
---------------------------------------------------------------
Key: ISPN-5849
URL:
https://issues.jboss.org/browse/ISPN-5849
Project: Infinispan
Issue Type: Sub-task
Reporter: Galder ZamarreƱo
Assignee: Galder ZamarreƱo
Fix For: 9.0.0.Alpha2
On one side, to use it as a try-with-resource, you need to declare it right in the
{{try()}};
{code}
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written ->
System.out.printf("Written (via onWrite): %s%n", written.get())))
{
Map<String, String> entries = new HashMap<>();
entries.put("key1", "value1");
entries.put("key2", "value2");
writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v))
.get(); // Wait for completable future
}
{code}
So it's usability is mostly designed for unit tests since listeners tend to be set
and removed at a later stage. IOW, listeners are not generally a short-lived object.
The other aspect that is clunky to use is the fact that AutoCloseable's close()
throws Exception, which again makes it ackward to use for example if lambdas.