Equinox and OSGi

Using course material designed by the Equinox project leaders and committers, the people who drive the project and literally wrote the book on the subject, this course enables you to leverage the capabilities of Equinox and OSGi. Our veteran Eclipse developers, with years of product development experience, cover OSGi fundamentals and advanced topics as well as specific features of Eclipse Equinox -- everything you need to develop highly modular Java applications. Along the way they provide deep insights and context to help you to start your own development efforts and keep on track.

Course participants incrementally develop a comprehensive application involving clients, servers and embedded devices, HTTP, servlets and other web technologies in a series of hands-on focused sessions. Keeping a small class format (max. 6-8 participants) ensures that you'll gain a broad understanding of Eclipse, Equinox and OSGi and get plenty of individual support from our experts.

Duration: 3 days

About Equinox and OSGi

Equinox is the core of the Eclipse platform and a major contributor to the success of Eclipse on the client-side (RCP). OSGi has been adopted by all the major Java application server vendors. Equinox is the OSGi implementation of choice and the OSGi framework and JSR291 reference implementation -- a solid architectural foundation for advanced, highly modular systems in clients, servers and embedded scenarios.

Dates and Registration

Goals, Audience, Prerequisites

Course Goals

  • Understand the essential concepts of Equinox and OSGi
  • Apply these concepts to the development of highly modular client/server systems
  • Learn the best practices for developing Equinox and OSGi-based systems

Target Audience

  • Software developers looking to leverage Equinox and OSGi
  • Eclipse plug-in developers wanting a deeper understanding of how Eclipse works
  • System architects interested in leading edge Java modularity
  • OSGi developers wanting to round out their knowledge and learn about Equinox extensions to OSGi and the Eclipse tooling suite

Prerequisites

  • Excellent knowledge of Java and object-oriented programming
  • Experience using the Eclipse IDE is desirable

Course Outline

OSGi Introduction

  • What is a bundle
  • Modularity
  • Bundle lifecycle
  • How to develop, run and debug bundles

Services

  • Inter-bundle collaboration
  • Defining services
  • Discovering services

Dynamic Systems

  • Dynamic awareness
  • Trackers, listeners, activators
  • Best practices for being dynamic

Declarative Services

  • Compared to traditional service techniques
  • Concepts: components, immediate, cardinality, optional, ...
  • POJO techniques
  • Best practices for naming, markup
  • PDE Tooling

Select OSGi Standard Services

  • HTTP
  • ConfigAdmin
  • Log
  • Preferences

Classloading

  • Classloading in OSGi and Equinox
  • Dependencies and classloading
  • Buddy Classloading policies
  • Context classloader integration

Server Side Equinox and OSGi

  • Solo: Jetty in Equinox
  • Embedded: Equinox embedded in app servers
  • Servlet bridge
  • Servlets, JSPs, AJAX content
  • OSGi-enabled WAR development and deployment
  • Security contexts and JAAS integration

Tooling

  • Target platforms and cross development
  • Using third-party libraries
  • Dependency management

Provisioning

  • Introduction to p2
  • Adding dynamic provisioning to applications
  • Provisioning servers
  • Extending p2

More Info

Format

  • Course Duration: 3 days
  • Course structure: instructor led with at least 50% hands-on labs and tutorials
  • Learn better in a small group: maximum 6-8 participants per instructor
  • Equipment: participants supply their own computer with an up-to-date installation of Eclipse

Languages

Classes in Germany are held in German. All other courses are held in English. Further languages are available on request.