Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-5704 Enhancements for Functional Map API
  3. ISPN-5849

AutoCloseable return from adding listeners can be clunky to use

    XMLWordPrintable

Details

    • Sub-task
    • Resolution: Unresolved
    • Major
    • None
    • None
    • None
    • None

    Description

      On one side, to use it as a try-with-resource, you need to declare it right in the try();

            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
            }
      

      So its 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.

      Attachments

        Activity

          Public project attachment banner

            context keys: [headless, issue, helper, isAsynchronousRequest, project, action, user]
            current Project key: ISPN

            People

              gzamarre Galder ZamarreƱo
              gzamarre Galder ZamarreƱo
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: