* 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
Added two modules to demonstrate locks.
Mutex demonstrates a simple mutual exclusion lock. Semaphore
demonstrates a semaphore for controlling access to a pool of resources.
The main class of both programs is App.java.