If you develop Eclipse plug-ins, either for the SDK or as part of an RCP application, then you are already an OSGi developer. But how well do you know the powerful engine under Eclipse’s hood?
In this tutorial, we will introduce the fundamental concepts of OSGi. In particular we will discuss how to program using the services model, which is still rarely used in Eclipse applications. Services are used to de-couple classes and untangle complex “spaghetti” dependencies; they enhance the reusability of your components and make your applications truly dynamic and adaptable.
The tutorial is for anybody wishing to gain an understanding of the fundamentals of OSGi. No prior experience of OSGi or Eclipse plug-in development is assumed.
This will be a hands-on tutorial with some code being developed. Therefore audience members should be either developers or technical architects who still remember how to write code.
What are services? How do they compare to Eclipse’s extensions and extension points?
How are services published to the Service Registry and how can they be consumed?
What are the challenges of dynamically binding to services, and what facilities are offered by OSGi (and frameworks that build on it) to address those challenges?
How are OSGi best-practices such as the Whiteboard Pattern and Extender Model used?
How do bundle dependencies really work in OSGi? Why is
Import-Package considered preferable to
How are handle awkward class loading situations in legacy or “enterprise” libraries handled?
Where is OSGi going, and what might the future of Eclipse development look like?
Neil is a Java developer and consultant specialising in Eclipse RCP and OSGi, in particular their use in large enterprise settings. Recently he has helped a number of financial institutions with their adoption of RCP and evangelises the use of the RCP/OSGi technology platform for both client and server-side development.