Tutorial Archive

There are a number of older tutorials and learning resources available on the web. Due to their age they do not offer all of the latest best practices. They have, however, proved useful resources over the years and therefore we provide links to them in this archive page.

“Getting Started with OSGi”

A tutorial series by Neil Bartlett (February-June 2007)

You may also be interested in my more advanced article, A Comparison of Eclipse Extensions and OSGi Services.

Introduction to Services

A good introduction to OSGi Services from Makewave 

Component Programming with OSGi

by Thomas Watson (IBM) and Peter Kriens (OSGi Alliance) (2006)

This tutorial shows you how to develop applications based on OSGi bundles (plug-ins are bundles). It starts with a simple “Hello World” application that highlights the modularity and life cycle features. This is then further developed into a web based application that uses services from other bundles, and provides services to other bundles. After this tutorial you will be able to write better, more flexible, more standalone, and more dynamic bundles that can be deployed in any OSGi service platform.

OSGi Best Practices!

by BJ Hargrave, OSGi Fellow and CTO, and Peter Kriens, OSGi Fellow & Director of Technology (2007) 

Learn how to prevent common mistakes and build robust, reliable, modular, and extendable systems using OSGi™ technology

The Server Side: OSGi for Beginners

A hello world tutorial (2008) 

Javaworld: OSGi tutorial

A beginners tutorial (2008) 

Developing OSGi Enterprise Applications

by Jeremy Hughes and Alasdair Nottingham, IBM (September 2010)

With the release of OSGi Enterprise 4.2 specifications, the role of OSGi was extended into the enterprise alongside what has traditionally been developed using JEE. This tutorial introduces you to building OSGi technology based enterprise applications, and explain both differences and improvements over traditional JEE applications. Using Eclipse-based and other freely available tools, we develop bundles supporting the Blueprint programming model, Web, and JPA 2.0 technologies. The resulting application is then deployed to a runtime enabled by Apache Aries.

Creating an OSGi bundle

By Glen Normington, VMware/SpringSource

Friday, January 05, 2007

Newcomers to OSGi may like a simple guide to developing an bundle. Peter Kriens has provided an extensive tutorial which is a must for anyone serious about learning OSGi. However, it has a long introduction and assumes you are happy to run Eclipse. So I thought I would provide a trival example that people could get going using only a Java SDK and their favourite text editor.

Here are instructions to create and run a trivial bundle, hopefully in about 10 minutes.

Apache Felix Project OSGi Tutorial

This tutorial creates successively more complex OSGi bundles to illustrate most of the features and functionality offered by the OSGi framework.


  • Apache Felix Tutorial Example 1: A bundle that listens for OSGi service events.
  • Apache Felix Tutorial Example 2: A bundle that implements a dictionary service.
  • Apache Felix Tutorial Example 2b: A bundle that implements another dictionary service.
  • Apache Felix Tutorial Example 3: A bundle that implements a simple dictionary service client.
  • Apache Felix Tutorial Example 4: A bundle that implements a more robust dictionary service client.
  • Apache Felix Tutorial Example 5: A bundle that implements a dictionary service client using the Service Tracker.
  • Apache Felix Tutorial Example 6: A bundle that implements a spell checker service using dictionary services.
  • Apache Felix Tutorial Example 7: A bundle that implements a spell checker service client.
  • Apache Felix Tutorial Example 8: A bundle that implements a spell checker service using Service Binder.

Apache Aries Project OSGi Blueprint “Hello World” Tutorial

This tutorial is designed for people who are starting to use the Apache Aries Blueprint implementation. After you have worked through the tutorial you will – be able to run a very simple piece of code in the Aries Blueprint container – understand bean, service and reference definitions in Blueprint

The tutorial assumes a basic working knowledge of Java development, Eclipse and some understanding of OSGi.

Apache Aries Project OSGi Blueprint “Greeter” Tutorial

This tutorial takes a slightly longer look at Blueprint [than “Hello World”] and works through the process of converting an OSGi project to use Blueprint.

It is aimed at people who already have some familiarity with OSGi.

OSGi Tutorial, A Step by Step Introduction to OSGi Programming, Based on the Open Source Knopflerfish OSGi Framework, V2

By Sven Haiges 2004 sven.haiges@vodafone.com
Updated by Erik Wistrand 2009 wistrand@makewave.com

This tutorial introduces you to OSGi programming based on the open source Knopflerfish OSGi framework. I chose Knopflerfish, because it is easy to install and provides a great desktop GUI, that will help you to get your first bundles deployed in an OSGi Framework.

First, the reader is quickly introduced to the installation of Knopflerfish. Second, you will create your first OSGi bundle and deploy it in this framework. Step by step, you will create more bundles, register and retrieve services and manage their dependencies. By the end of this tutorial, you should have a basic understanding of OSGi programming.

The OSGi Complete

By Dr. Pavlin Dobrev and Stoyan Boshev, ProSyst Software Labs

OSGi defines a huge set of services that are not well known to the application developers. Some of these services are Wire Admin, IO Connector, Initial Provisioning and Declarative Services. These services are donated to Eclipse in 2007 from ProSyst and it is expected to be included in the next Eclipse major release.

This tutorial will focus on main problems, solutions and code snippets related to the usage of the OSGi services. Some topics which will be addressed are:

  • OSGi Wire Admin Service Specification
  • OSGi IO Connector Service Specification
  • OSGi Initial Provisioning
  • OSGi Declarative Services Specification
  • Example Usage

The tutorial will include set of programming examples and demonstrations involving different OSGi services.

Explore Eclipse’s OSGi console, Use and extend the console that drives Eclipse

By Chris Aniszczyk (zx@redhat.com), Principal Software Engineer, Red Hat Inc.

30 Jan 2007, Level: Intermediate

Get acquainted with the hidden gem known as the OSGi (Equinox) console and find out how it can be added to an Eclipse developer’s toolbox. And learn how to extend the console to further add to the toolbox.

Getting started with Spring-OSGi

by Peter Doornbosch, luminis


With the introduction of Spring OSGi, it becomes relatively easy to split up a Spring application in separate OSGi bundles, and have a much more modular application architecture, without all the classloading hassle you may encounter when deploying components in J2EE application servers.

Getting started with Spring-OSGi — part 2


In the previous blog entry about Spring-OSGi, we demonstrated how to develop a simple Spring-OSGi bundle that exposes a Spring bean as an OSGi service. In this installment we’ll have a look at how you can use OSGi services in a Spring-OSGi bundle. The sample code used in this blog builds on the sample of the previous blog and can of course be downloaded from our site.

Building Composite Applications, one of the IBM Redbooks

by Juan R. Rodriguez, Alex Barbosa Coqueiro, Belen Gonzalez Agudo, Sunil Patel, Ricardo Rossi, Rafael Sanchez, Robert Schneider, Guillermo Villavicencio, Art Whorley, and Michael Zink

July 2007

Learn about composite applications, and component intercommunication