What this book covers
Chapter 1, Plugging in to JFace and the Common Navigator Framework, demonstrates how to create JFace wizards and how to integrate content into the Common Navigator Framework, which is then used by Package Explorer to provide a tree view of the project's contents.
Chapter 2, Creating Custom Extension Points, shows how the Eclipse extension registry can be used to create an extensible plug-in that allows other plug-ins to contribute functionalities and how it can be used outside of an OSGi or Eclipse runtime.
Chapter 3, Using OSGi Services to Dynamically Wire Applications, introduces OSGi services as a means to extend an application's functionality. This chapter shows how these services can be configured declaratively with Declarative Services or Blueprint and how they can be configured using Config Admin along with the new changes in OSGi R6.
Chapter 4, Using the Gogo Shell and Commands, discusses how to use the Gogo shell embedded in Eclipse 4 and how to extend it by creating custom commands in Gogo script and Java.
Chapter 5, Native Code and Fragment Bundles, demonstrates how to load native code into an OSGi or Eclipse application and how fragment bundles can be used to extend the capabilities of the framework or existing OSGi bundles.
Chapter 6, Understanding ClassLoaders, goes into detail as to how the key concepts of a Java ClassLoader work and how they are used in an OSGi runtime. It also explains how non-OSGi workarounds, such as the Thread Context ClassLoader and ServiceLoader, can be used in an OSGi framework, along with presenting upgrade strategies for non-OSGi JARs.
Chapter 7, Designing Modular Applications, discusses modular design patterns such as the whiteboard pattern and extender pattern along with 18 best practices, including how to use semantic versioning and tools that can automate version number management.
Chapter 8, Event-driven Applications with EventAdmin, introduces the OSGi EventAdmin service and how E4 uses events under the covers to provide an interactive workspace, along with 7 steps for designing event-driven applications.
Chapter 9, Deploying and Updating with P2, shows how to create and manage P2 repositories (update sites) along with creating custom touchpoints and categories.
Chapter 10, User Assistance in Eclipse, demonstrates how to write help documentation for an Eclipse- or RCP-based product along with cheat sheets and running a public facing help server.