Pax Exam

Skip to end of metadata
Go to start of metadata

Pax Exam is the tool to ease testing OSGi frameworks & applications.

When Pax Exam helps you

  • You want an easy to set up integration test framework for OSGi
  • You want to safely run your tests on a local OSGi framework
  • You want dozens of supported OSGi framework configurations
  • You want to execute and debug a chunk of code inside your OSGi based application
  • You want to provision bundles under test from all sorts of common and less common URL protocols like mvn:org.ops4j.pax.logging/pax-logging-api to setup your test environment
Getting Started with Pax Exam 2
Visit Pax Exam Learning Project to get started quickly.

What is special about Pax Exam

  • Pax Exam lets you take control of the OSGi framework, the test framework (e.g. JUnit) and your system under test at the same time.
  • Pax Exam has a test driver and a test container. The driver launches the OSGi framework and the system under test. It builds on-the-fly bundles from your test cases and injects them into the container. The driver is a plain old Java application and does not itself require an OSGi framework.
  • The test container comes in multiple flavours: With the Pax Runner Container, the system under test runs in a separate Java virtual machine under remote control from the test driver. The Native Container launches an embedded OSGi framework in the test driver VM.
  • Test containers support different strategies for restarting or reusing the running OSGi framework for each test.
  • With Pax Exam's JUnit4TestRunner, you simply need to add some special annotations and a configuration method to a JUnit class to run your OSGi tests. Thanks to this runner, any JUnit integration (e.g. in Eclipse or Maven Surefire) works with Pax Exam out of the box.
  • Pax Exam itself is distributed as Maven artifacts and lets you provision Maven bundles to your OSGi framework directly from local or remote Maven repositories.
  • Pax Exam supports all major OSGi frameworks (Equinox, Felix, Knopflerfish) and lets you configure the combinations of framework vendors and versions for running your tests.

Latest News

The Pax Exam team is happy to announce the release of OPS4J Pax Exam 2.4.0 with some major new features and a whole lot of maintenance updates and bugfixes.

Here are some highlights since the last stable release 2.3.0

  • The new Forked Test Container is a lightweight alternative to the Pax Runner Container, using the OSGi Framework launcher API in a forked Java VM via an RMI wrapper.
  • Java configuration options are complemented by configuration properties.
  • Users can disable all default options by a configuration property.
  • Cleanup issues of Eager Single Reactor strategy are fixed.
  • Regression tests on the build server run in a full matrix of 3 frameworks by 3 containers.
  • Embedded dependencies in Pax Exam bundles have been replaced by package imports.

The Pax Runner Container and all Runner-only configuration options will be deprecated in the 2.5.0 release. The Pax Runner Container will continue to be maintained in all 2.x releases but go away in 3.0.0.

For more details, see the JIRA release notes below.

As usual, all artifacts are available from Maven Central.

Changes since 2.4.0.RC1

Changes since 2.3.0

Any feedback is welcome, either on the mailing list (general@lists.ops4j.org) or via the issue tracker.

The Pax Exam team is happy to announce the first release candidate of OPS4J Pax Exam 2.4.0 with some major new features and a whole lot of maintenance updates and bugfixes.

  • The new Forked Test Container is a lightweight alternative to the Pax Runner Container, using the OSGi Framework launcher API in a forked Java VM via an RMI wrapper.
  • Java configuration options are complemented by configuration properties.
  • Users can disable all default options by a configuration property.
  • Cleanup issues of Eager Single Reactor strategy are fixed.
  • Regression tests on the build server run in a full matrix of 3 frameworks by 3 containers.
  • Embedded dependencies in Pax Exam bundles have been replaced by package imports.

The Pax Runner Container and all Runner-only configuration options will be deprecated in the 2.4.0 release. The Pax Runner Container will continue to be maintained in all 2.x releases but go away in 3.0.0.

For more details, see the JIRA release notes below.

As usual, all artifacts are available from Maven Central.

Changes since 2.3.0

Any feedback is welcome, either on the mailing list (general@lists.ops4j.org) or via the issue tracker.

Labels: pax-exam, release
Pax Exam 2.3.0 Released

The Pax Exam team is happy to announce the release of OPS4J Pax Exam 2.3.0 with more than 30 new features, maintenance updates and bugfixes.

There are only minor upgrades and cleanups compared to the 2.3.0.M1 milestone release. We would like to thank everyone who contributed to this release by source commits, patches, reviews or user feedback.

Some of the new features are not backward compatible with Pax Exam 2.2.0. Before upgrading, please read the article on Service Injection.

The most important additions since Pax Exam 2.2.0:

For more details, see the JIRA release notes below.

As usual, all artifacts are available from Maven Central.

Changes since 2.3.0.M1

Changes since 2.2.0

Any feedback is welcome, either on the mailing list (general@lists.ops4j.org) or via the issue tracker.

Labels: pax-exam, release
Labels:
integration integration Delete
pax-project pax-project Delete
osgi osgi Delete
junit junit Delete
testing testing Delete
pax pax Delete
unit unit Delete
exam exam Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Clicky Web Analytics