Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-8565

opinion on refactoring ListenableFuture to Java 8 CompletableFuture

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Later
    • None
    • None
    • None

    Description

      Hi, I'm doing research on new concurrent constructs in Java 8. I found CompletableFuture in Java 8 has the same functionality as Guava ListenableFuture. But CompletableFuture is much nicer because it comes together with Lambda expression in Java 8, and it is monadic, which makes the code more readable and cleaner. Also, it provides more ways to compose different tasks. Therefore, using CompletableFuture instead of ListenableFuture is better for future extension and maintenance of the code.

      I also created a pull request on the Github repo and refactored one ListenableFuture instance, so you can see the diff (you don't have to apply that patch):
      https://github.com/apache/cassandra/pull/50

      I'm just wondering your opinion on this kind of refactoring (or migrating the code from Java 7 to Java 8). Do you think the refactoring is useful? Do you have any plan to use Java 8?

      Attachments

        Activity

          People

            Unassigned Unassigned
            jacklondongood Yu Lin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: