When I started working with OSGi technology back in 2000, I would’ve never guessed I’d still be working with it a decade later. Back then, OSGi was targeting the embedded market niche, but that wasn’t my area of interest. I wanted to create highly dynamic, modular applications, and OSGi gave me the possibility of doing so. At the time, there weren’t any freely available OSGi framework implementations; so I started working on my own open source implementation, called Oscar, back in December 2000 while I was working at Free University Berlin. Oscar moved with me when I moved to Grenoble to work at Josef Fourier University, where the work really started to flourish.
As OSGi technology began to gain traction, Oscar moved to the ObjectWeb open source consortium in 2004, and later it evolved into Felix at the Apache Software Foundation in 2005. I was fortunate enough to be invited by the OSGi Alliance to work directly on the OSGi specifications for the R4 release cycle in 2004. I’ve been involved in the OSGi specification process ever since, initially as an academic researcher and most recently in industry, when I took a position on the GlassFish team at Sun Microsystems (now Oracle Corp.) in 2008. A lot has changed over the last 10 years.
OSGi technology has moved beyond the embedded market into a full-blown module system for Java. This transformation was significantly helped along in 2004 when the Eclipse IDE refactored its plugin system to run on top of OSGi, and it has continued with the adoption of the technology in enterprise circles by Spring and all the major application servers. Although the future of Java modularity is still evolving, OSGi technology looks to play a role for a long time to come. Which brings us back to this book.
What is OSGi? Simply put, OSGi is a standardized technology that allows developers to create the highly modular Java applications that are required for enterprise development. OSGi lets you install, start, stop, update, or uninstall components without taking down your entire system. The interest in OSGibased applications has exploded since major vendors like Sun, Spring, Oracle, BEA, and IBM have gotten behind the standard.
OSGi in Action is a comprehensive guide to OSGi with two primary goals. First, it provides a clear introduction to OSGi concepts with examples that are relevant both for architects and developers. Then, it explores numerous practical scenarios and techniques, answering questions like: How much of OSGi do you actually need? How do you embed OSGi inside other containers? What are the best practices for moving legacy systems to OSGi?