* remove spring dep
move junit, logging, mockito under dep mgmt
* upgrade anti-corruption-layer deps
* async method invocation
* balking, bloc
* bridge to bytecode
* caching
* callback - cqrs
* component - health check
* hexagonal - metadata mapping
* rest of the patterns
* remove checkstyle, take spotless into use
* Add custom license header style in order to comply with Google's Checkstyle format
* Update license headers to comply with Google's Checkstyle format
* 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
I ran App.main(String[] args) in the 'double-checked-locking' module and the process does not terminate. This is because the executor service still has open threads. I'm not sure how the JUnit tests are run, but it seems they are handling the leftover resources themselves.
Also, minor modifications to Inventory for final fields are used since there is no state change around them, and added some more meaningful printing so the example is more clearly demonstrated