Modularity is a highly important concept in Java application development. Modularity allows pieces of a large development project to move forward as smaller concurrent development projects and avoid unnecessary bottlenecks around creating a WAR file for deployment. OSGi is widely seen as the way to modularize. The Eclipse runtime is based heavily in OSGi, and other open source projects are also running on OSGi under the hood.
OSGi and Equinox: Creating Highly Modular Java Systems is a practical guidebook with plenty of hands on learning for development team members who want to gain a greater understanding of the OSGi framework. Written by Jeff McAffer, Paul VanderLei and Simon Archer, the book presents a specific example of an enterprise application development project and uses this example throughout to illustrate all points of the application lifecycle from initial creation through final deployment.
The book presents a "tutorial-style guide" that speaks to the issues in an informal tone on how to build an enterprise application, explains how to troubleshoot and refine the original prototype and provides a wealth of reference, tips and best practices to refer back to throughout the application development process.
At the heart of the OSGi architecture are bundles. The following excerpt comes from chapter two, and touches on the topic of bundles:
A Community of Bundles
An OSGi system is a community of components known as bundles. Bundles executing within an OSGi service platform are independent of each other, yet they collaborate in well-defined ways. Bundles are fully self-describing, declaring their public API, defining their runtime dependencies on other bundles, and hiding their internal implementation.
Bundle writers, producers, create bundles and make them available for others to use. System integrators or application writers, consumers, use these bundles and write still more bundles using the available API. This continues until there is enough functionality available to solve a given problem. Bundles are then composed and configured to create the desired system...
[Thier] characteristics lead to a fundamentally simple but powerful module system upon which other systems can be built. Indeed, modularity and OSGi bundles are among the secrets to the success of Eclipse as a platform and as an ecosystem ... The strong modularity promoted and supported by OSGi dramatically increases the opportunity for code reuse and accelerates the delivery of applications.
Check here for more information about the book.
This was first published in April 2011