OSGi in Action: Creating Modular Applications in Java