* Upgrade maven plugins
* Upgrade maven plugins
Some general code cleanup was necessary due to upgrade of PMD and checkstyle.
Also needed to add Junit 4 as a dependency due to Mockito.timout issue found here:
https://github.com/mockito/mockito/issues/152
* Made minor changes in some patterns such as removed throws clause where not needed, changed incorrect order of arguments in assertEquals
* Minor refactorings and code style changes. 1) Removed several use of raw types 2) Removed unnecessary throws clauses 3) Used lambda expressions wherever applicable 4) Used apt assertion methods for readability 5) Use of try with resources wherever applicable 6) Corrected incorrect order of assertXXX arguments
* Removed unused import from Promise
* Addressed review comments
* Addressed checkstyle issue
(NEW) Illustrative classes:
- App: simulates a production application
- BusinessOperation<T>: abstraction over any operation that can
potentially fail
- FindCustomer <: BusinessOperation<String>: illustrative
operation that can throw an error
- Retry <: BusinessOperation<T>: transparently implements the
retry mechanism
- Several "business" exceptions:
- BusinessException: top-level
- CustomerNotFoundException: can be ignored
- DatabaseNotAvailableException: fatal error
(NEW) .puml and .png for UML