In this chapter, we looked at the Eclipse extension registry and how it can be used by programs to load extensions, as well as how to define extension points for others to extend. We learned how to sort elements in a way that does not rely on the order of the data in the plugin.xml
files and how to perform simple definitions and validations with the associated schema.
The extension registry can also be used to customize different instances of extensions, and we looked at both of the ways in which this is done in Eclipse—with executable extensions and with extension factories (for classes whose inheritance hierarchy cannot be modified).
Finally, we looked at how the registry can be used outside of an OSGi runtime, which permits application code to be well behaved both inside and outside of OSGi.
In the next chapter, we will look at how similar extensions can be achieved with OSGi services.