Pax Drone


Pax Drone is now Pax Exam.
You can find the sourcecode now at

This page will be moved as part of the first pax exam: v. 0.3

Unknown macro: {ops4j-style}
Unknown macro: {ops4j-roundrect}

Pax Drone is an extensible integration testing framework for OSGi
It supports a large amount of osgi framework configurations out of the box to provide painless integration testing experience.

If any of the following is true

  • You want have a simple to setup integration testframework for OSGi
  • You want to run your tests on a remote OSGi framework
  • You want to safely run your tests on a local OSGi framework
  • You want millions of [supported OSGi framework configurations] (ok, at least some..)
  • You want to execute and debug a chunk of code inside your osgi based application
  • Want to use [urls] like mvn:org.ops4j.pax.logging/pax-logging-api to setup your test environment
  • You don't know why you need integration testing for OSGi but want to spend some minutes checking it out..

.. Pax Drone is for you!

Unknown macro: {ops4j-roundrect}

System Requirements

  1. Java 5 virtual machine running on a supported operating system.

Source Code ( or browse via FishEye )
This project builds with Apache Maven and uses Apache Felix's maven-bundle-plugin, and Peter Krien's bnd tool.


1. Use the following dependencies to get started: (or look at the sample sub project)




For the cutting edge version (already rebrandet to Pax Exam) use this




The main maven repository is .
So you have to add this to your settings.xml or pom:



For snapshot versions build it yourself ( or use the snapshot repository:



2. Write your first drone test (Pax Drone 0.2.x) :

package com.lhsystems.pixxa.integrationtest.flightinformationsystemservice;

import org.ops4j.pax.drone.spi.junit.DroneTestCase;
import org.ops4j.pax.drone.api.DroneConnector;
import static org.ops4j.pax.drone.connector.paxrunner.GenericConnector.*;
import org.ops4j.pax.drone.connector.paxrunner.Platforms;

public class SimpleTest extends org.ops4j.pax.drone.spi.junit.DroneTestCase {
public DroneConnector configure() {
return create(createRunnerContext(),createBundleProvision()

public void testBundles1() {
// an bundleContext instance is injected at runtime.
assertNotNull( bundleContext );

public void testBundles2(BundleContext myBundleContext) {
// or you prefer to get it from method paraemter. Result is same as in testBundles1
assertNotNull( myBundleContext );
Unknown macro: {ops4j-roundrect}

After last 0.3.0 release, there is now some new documentation available that should help you to get started with Pax Exam quickly:

Pax Drone 0.2.1 Released

Pax Drone 0.2.1 has been released.

Checkout release notes for details.

As written and decided on the mailinglist this week, pax drone will be re-named to Pax Exam.
The change will be done after the upcoming 0.2.1 release

All marketing material and tv-spots will be re-made asap.. (wink)

Pax Drone 0.2.0 Released

Pax Drone 0.2.0 has been released.

This release focuses on user experience and user feedback.
Additional major new features:

  • support for JUnit4 test runner.
  • new Test First Scenario: see PAXDRONE-36 for details
  • more paxrunner options

Checkout release notes for details.

Pax Drone 0.1.3 Released

Pax Drone 0.1.3 has been released.
This is a bugfix release.

Checkout release notes for details.

As for now, this is the last scheduled 0.1.x release.
The 0.2.x line is already in development and will significantly improve transparency to the inner workings (PAXDRONE-34), a much requested need, and more.