]
Dan Berindei updated ISPN-5849:
-------------------------------
Fix Version/s: 8.2.0.CR1
(was: 8.2.0.Beta1)
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: 8.2.0.CR1
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.