ExportXMLWordPrintableJSON

    • Type: Epic
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • Async Refactoring
    • Java Drivers
    • Not Needed
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • In Progress
    • 0
    • 0
    • 0
    • 100
    • None
    • None
    • None
    • 2
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Much of our existing ("legacy") async code uses nested callbacks. The Async API added in JAVA-5082 reduces and isolates boilerplate, uses chaining to make async code easy to write and compare to sync code, has built-in exception handling, and is comprehensively tested. However, it is not always clear if refactoring (to use the Async API) should be undertaken as part of other work, which means that legacy async code remains in place, even in cases where we often read and modify it.

      This epic tracks the presence of legacy async code. Such code can be identified by finding usages of `onResult`. There are 194 usages in driver-core, and 26 in driver-reactive-streams. 77 more are in test code. Some issues under this epic identify classes with substantial async code. Our codebase also uses several constructs to work with async code, which are superseded by the Async API, and can be removed.

            Assignee:
            Maxim Katcharov
            Reporter:
            Maxim Katcharov
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              None
              None
              None