OPS4J
  Pax Drone
Added by Toni Menzel, last edited by Toni Menzel on Nov 21, 2008  (view change)

Labels

 
Namechange

Pax Drone is now Pax Exam.
You can find the sourcecode now at ttps://scm.ops4j.org/repos/ops4j/projects/pax/exam

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

Overview

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!


Usage

System Requirements

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

Source Code

https://scm.ops4j.org/repos/ops4j/projects/pax/drone ( or browse via FishEye )
This project builds with Apache Maven and uses Apache Felix's maven-bundle-plugin, and Peter Krien's bnd tool.

Installation

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

<dependency>
  <groupId>org.ops4j.pax.drone</groupId>
  <artifactId>pax-drone-spi</artifactId>
  <version>0.2.1</version>
</dependency>
<dependency>
  <groupId>org.ops4j.pax.drone</groupId>
  <artifactId>pax-drone-spi-junit</artifactId>
  <version>0.2.1</version>
</dependency>
<dependency>
  <groupId>org.ops4j.pax.drone</groupId>
  <artifactId>pax-drone-connector-paxrunner</artifactId>
  <version>0.2.1</version>
</dependency>

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

<dependency>
  <groupId>org.ops4j.pax.exam</groupId>
  <artifactId>pax-exam-spi</artifactId>
  <version>0.3.0-SNAPSHOT</version>
</dependency>
<dependency>
  <groupId>org.ops4j.pax.exam</groupId>
  <artifactId>pax-exam-junit</artifactId>
  <version>0.3.0-SNAPSHOT</version>
</dependency>
<dependency>
  <groupId>org.ops4j.pax.exam</groupId>
  <artifactId>pax-exam-connector-paxrunner</artifactId>
  <version>0.3.0-SNAPSHOT</version>
</dependency>

The main maven repository is http://repository.ops4j.org/maven2/ .
So you have to add this to your settings.xml or pom:

<repository>
    <id>ops4j.releases</id>
    <url>http://repository.ops4j.org/maven2</url>
    <snapshots>
       <enabled>false</enabled>
    </snapshots>
 </repository>

For snapshot versions build it yourself (https://scm.ops4j.org/repos/ops4j/projects/pax/drone) or use the snapshot repository:

<repository>
    <id>ops4j.snapshots</id>
    <url>http://repository.ops4j.org/mvn-snapshots</url>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
 </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()
        .addBundle("mvn:org.ops4j.pax.logging/pax-logging-service")
        .addBundle("mvn:org.ops4j.pax.logging/pax-logging-api")
        ).setPlatform(Platforms.FELIX); 
  }

  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 );
  }
}
Latest News
Last changed Nov 14, 2008 10:26 by Toni Menzel
Labels: pax, pax-drone, drone, release, news, exam

Pax Drone 0.2.1 has been released.

Checkout release notes for details.

Posted at Nov 14, 2008 by Toni Menzel | 0 comments
Last changed Nov 13, 2008 17:07 by Toni Menzel
Labels: pax, pax-drone, drone, news, exam, pax-exam

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..

Posted at Nov 13, 2008 by Toni Menzel | 0 comments
Last changed Nov 03, 2008 18:33 by Toni Menzel
Labels: pax, pax-drone, drone, release, news

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.

Posted at Nov 03, 2008 by Toni Menzel | 3 comments
Last changed Sep 26, 2008 22:39 by Toni Menzel
Labels: pax, pax-drone, release, news

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.

Posted at Sep 26, 2008 by Toni Menzel | 0 comments
Labels: pax, pax-drone, release, news

Pax Drone 0.1.2 has been released.
This is a bugfix release that introduced paxdrone's paxrunner to choose a free port if default is occupied.
And issues when running in multi user environments.

Checkout release notes for details.

Posted at Jul 12, 2008 by Toni Menzel | 0 comments