I finally found the time to read Java Application Architecture: Modularity Patterns with Examples Using OSGi written by Kirk Knoernschild.
With such an impressive and lengthy title I expected a difficult read. But as it turns out Kirk was able to explain some rather abstract concepts in a very understandable and accessible manner.
The first part puts the focus on class versus module re-usability. Illustrated by some clever examples it show why module design is needed in just about any application. The modularity patterns used to create self containing modules are explained in part two. I found this part a more technical read. If you’re just interested in a high level overview you could read part one and use part two as a reference. And finally in part three there are some basic OSGi examples.
I actually had fun reading this book. Mostly because of the clever refactoring examples used in part one. And as an added bonus I gained some new insights in application design. This is by far one of the best books I’ve ever read about reusable software. If however you are looking for an OSGi manual you will be disappointed as the included examples are rather basic.
For those interested: Kirk Knoernschild has given some great presentations about modularity. Some of which you can view on Parleys.