Blog

Blog

The Pax Exam team is happy to announce the first release candidate of OPS4J Pax Exam 3.

In addition to a number of dependency upgrades, bugfixes and usability improvements, there are two new Java EE test containers:

For more details on all changes, see the JIRA release notes below.

As usual, Pax Exam artifacts are available from Maven Central.

There are now two separate Wiki spaces for Pax Exam 2.x and Pax Exam 3.x.

Please test this release candidate and give us your feedback, either on the mailing list (ops4j@googlegroups.com) or via the issue tracker.

The 3.0.0 final release is planned for January 2013.

Changes since 3.0.0.M4

T Key Summary
Loading...
Refresh

The Pax Exam team is happy to announce the milestone release of OPS4J Pax Exam 3.0.0.M4.

The highlights of this milestone release are:

  • The Tomcat test container now supports Spring injection into test cases as an alternative to CDI injection.
  • Pax Exam server mode is leveraged by a JUnit rule and by a Maven plugin.
  • It is now possible to run a single test method from a test class.
  • In Java EE mode, users can override the automatic WAR probe construction by explicit configuration.
  • The deprecated Pax Runner Test Container and all related deprecated configuration options have been removed.

For more details on all changes, see the JIRA release notes below.

As usual, Pax Exam artifacts are available from Maven Central.

All new features in this milestone release are preliminary and may change before the 3.0.0 release.

Pax Exam 3.0 is now feature complete, and this milestone is to be followed by the first release candidate 3.0.0.RC1, which will focus on code cleanup and documentation.

Please test this milestone release and give us your feedback, either on the mailing list (general@lists.ops4j.org) or via the issue tracker. This will help us pushing the 3.x release in the right direction.

Changes since 3.0.0.M3

T Key Summary
Loading...
Refresh

Pax Exam 2.6.0 Released

The Pax Exam team is happy to announce the release of OPS4J Pax Exam 2.6.0.

This is a maintenance release with a number of dependency upgrades and minor improvements.

For more details on all changes, see the JIRA release notes below.

As usual, Pax Exam artifacts are available from Maven Central.

Changes since 2.5.0

T Key Summary
Loading...
Refresh

The Pax Exam team is happy to announce the milestone release of OPS4J Pax Exam 3.0.0.M3.

This milestone release includes:

  • A Tomcat test container for Tomcat 7.x supporting CDI injection into tests using OpenWebBeans or Weld.
  • Backward compatibility with deprecated annotations of Pax Exam 2.4.0. (Verified by running Pax Web integration tests on Pax Exam 3.0.0.M3.)

For more details on all changes, see the JIRA release notes below. All new features are covered in the documentation.

As usual, Pax Exam artifacts are available from Maven Central.

All new features in this milestone release are preliminary and may change before the 3.0.0 release.

Please test this milestone release and give us your feedback, either on the mailing list (general@lists.ops4j.org) or via the issue tracker. This will help us pushing the 3.x release in the right direction.

Changes since 3.0.0.M2

T Key Summary
Loading...
Refresh

Pax Exam 2.5.0 Released

The Pax Exam team is happy to announce the release of OPS4J Pax Exam 2.5.0.

This is mainly a maintenance release with a number of bugfixes and upgrades. The only API change is the deprecation of all configuration options supported by the Pax Runner Test Container only. This container will no longer be supported in the coming 3.x release line.

For more details on all changes, see the JIRA release notes below.

As usual, Pax Exam artifacts are available from Maven Central.

Changes since 2.4.0

T Key Summary
Loading...
Refresh

The Pax Exam team is happy to announce the milestone release of OPS4J Pax Exam 3.0.0.M2.

This milestone release includes:

For more details on all changes, see the JIRA release notes below. All new features are covered in the documentation.

As usual, Pax Exam artifacts are available from Maven Central.

All new features in this milestone release are preliminary and may change before the 3.0.0 release.

Please test this milestone release and give us your feedback, either on the mailing list (general@lists.ops4j.org) or via the issue tracker. This will help us pushing the 3.x release in the right direction.

Changes since 3.0.0.M1

T Key Summary
Loading...
Refresh

The Pax Exam team is happy to announce the release of OPS4J Pax Exam 3.0.0.M1. This is the first milestone towards the next major release which extends the Pax Exam model of in-container testing from OSGi to Java EE and CDI.

This milestone release includes:

  • Three operation modes OSGi, Java EE and CDI. The functionality of Pax Exam 2.x is equivalent to the OSGi operation mode of Pax Exam 3.x.
  • Support for CDI dependency injection into test classes in Java EE and CDI modes.
  • Generic support for Java EE test containers and WAR deployment.
  • Generic support for WAR test probes. A WAR probe is assembled automatically from the classes and resources on the classpath, including a servlet bridge which acts as a remote control for executing tests in the embedded Java EE container.
  • Generic support for CDI test containers which launch a CDI container in a Java SE environment and directly execute test methods without using a probe.
  • A GlassFish Java EE Container which launches GlassFish 3.1.2 on top of an OSGi framework and lets the user deploy any combination of OSGi bundles and plain old WAR modules.
  • An OpenWebBeans CDI container.
  • A Weld CDI container.
  • New reactor strategies PerSuite, PerClass, PerTest, the last two just being handy synonyms for the strategies introduced in Pax Exam 2.x.
  • A ConfigurationFactory for sharing configurations between test classes in a suite.
  • PaxExam is now the preferred synonym for the JUnit4TestRunner.
  • Sample projects and integration tests for the new operation modes. See itest/cdi and itest/javaee in the source repository.

The new containers have been integrated from the jeeunit project, which will be fully superseded by the Pax Exam 3.0.0 final release.

For more details on all changes, see the JIRA release notes below. All new features are covered in the documentation.

As usual, Pax Exam artifacts are available from Maven Central.

All new features in this milestone release are preliminary and may change before the 3.0.0 release.

Please test this milestone release and give us your feedback, either on the mailing list (general@lists.ops4j.org) or via the issue tracker. This will help us pushing the 3.x release in the right direction.

Changes since 2.4.0

T Key Summary
Loading...
Refresh

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

T Key Summary
Loading...
Refresh

Changes since 2.3.0

T Key Summary
Loading...
Refresh

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

T Key Summary
Loading...
Refresh

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

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

T Key Summary
Loading...
Refresh

Changes since 2.2.0

T Key Summary
Loading...
Refresh

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

A considerable number of maintenance updates, bugfixes and new features have accumulated in Pax Exam over the past few weeks. While some of the new features are not yet in final shape, they are stable enough for a milestone release Pax Exam 2.3.0.M1.

Some of the new features are not currently backward compatible with Pax Exam 2.2.0, which may or may not remain so in the final 2.3.0 release.

With this milestone release, we are hoping to get feedback from users which will help us find the right balance between new features on the one hand and breaking some backward compatibility on the other hand.

Please feel free to send us your comment either on the mailing list (general@lists.ops4j.org) or via the issue tracker.

The most important new features are:

For more details, see the JIRA release notes below.

As usual, all artifacts are available from Maven Central.

T Key Summary
Loading...
Refresh

Pax Exam 2.1 released

So, quick start, Pax Exam 2.1 hit Maven Central this morning.

While Version 2.0.0 was a soft release last week without fancy release announcement articles, this Version now is the one that deprecates Pax Exam 1.x.

If you are currious, check out the Pax Exam Strategy Guide to lean how to do things.

Quick list of most important changes from 2.0 to 2.1:

  • All Options are now created from "CoreOptions" (name for backwards compatibility reasons). No more multiple static imports for options you don't know where they are from (PaxRunnerOptions anyone?). When writing Exam Tests or Servers (..) you have this in the import section: import static org.ops4j.pax.exam.CoreOptions.*;
  • Recognize unused Options. This really helpful when using options that are not supported in the container being used. For example "profile(..)" just works with PaxRunnerTestContainer. Now you get a warning when using it in NativeContainer.
  • Revised ExamSystem: Under the hood, this is pretty big news. As an end-user, you may not worry too much. For an SPI user: yes, you may need to look at interface changes. ExamSystem is a read only component wrapping your options and providing cross cutting functionality about Exam (like workingFolder, parsing options of a certain type, implicit options etc). With this, TestContainer implementations are now much more simplified.
  • Multiple bugfixes, mostly when using Native Container. Options are now recognized if possible.
  • pax-exam-link-assembly is now prefered to pax-exam-link-mvn. Mostly because it does not necessarily need an MVN resolver at runtime (less overhead).
  • Pax Runner Container does not transitively ship with Pax Runner anymore. You need to add pax-runer-no-jcl (current version 1.7.4) manually. Reason: decoupling of projects. You don't need to wait for a new Exam release when Runner gets a bugfix.
  • Same as above for URL Handlers using in Native Container. When using this container, you just get (transitively pax-url-classpath and pax-url-link). For aether you need to add pax-url-aether to your pom.
  • Server Mode. This is a special way to materialize your configuration (Options[]) into a process without any exam bundles, hooks installed. It also pre-sets some feasenable defaults for this scenario like not cleaning caches after shutdown, keeping original urls (just used when using Pax Runner Container) and so on.
    As always, the Pax Exam Stratgy Guide Project is being updated to reflect the most different usecases and options in standalone, easy to pick maven project templates.

For a full list:

T Key Summary
Loading...
Refresh

Pax Exam 1.2.3 Released

Pax Exam 1.2.3 has been released.
This release is a bug fix release. Very likely the last one in 2010 (wink)

Checkout release notes for details.

Special thanks goes to Dmytro Pishchukhin for kicking the release process!
Also to Bartosz Kowalewski for providing valuable bugfixes and suggestions in this release.

Happy New Year everybody!

Toni

Pax Exam 2 Milestone 1

Folks,

Today the Pax Exam 2 fork has seen its first release as Milestone 1.

Milestone 1: Call to Arms

This is not a production ready release that comes with all sorts of documentation and support.
Instead, its a "call to arms" regarding this branch that has been living for too much time.

Nevertheless this M1 release is available as "2.0.0-M1" on Maven Central.

Instead of reporting all kinds of (possible) regressions when compare it to the 1.x line i would like to focus on some specific key areas.

Native TestContainer for Felix and Equinox

One very early "feature" was the Pax Runner-less support for so called native containers using the OSGi Core 4.2 Launcher API.
This means that you lose

  • many Pax Runner configurations
  • the ability to run the tests against different frameworks and versions without much effort

However you gain:

  • speed
  • much easier debugging
  • less "stuff" running between you and your test. If you are testing very close to a specific framework this is very handy.

See the regression projects for Felix and Equinox.

Plumbing API

Have a look at BareAPITest.java and ReactorAPITest.java for an example.

As you see, this is not using the @RunWith annotation in your Test Class. Instead, it uses a default Junit4 Runner (you could also use TestNG here, or a Main Class.. if wanted) and assembles "external" Test Classes.

This is the bare bones of the higher level Junit4 Layer that also exists of cause (Example of the Junit4 Driver API).

Anyhow, the Junit4 Driver (implemented here is very minimal and does not (on purpose) implement things like:

  • propper @Before and @BeforeClass handling
  • Configuration consolidation

yet.

Review the Reactor principle

Reading this example should give you an idea what the reactor principle is about.

Have a look at the two test methods:
In one you control the TestContainer lifecycle yourself, in the other you use a mediator called "Reactor".
Currently you can chose between two radically different reactors, both can be found here:

AllConfinedStagedReactor
Launch a new TestContainer per Configuration and Test Method. This is the Pax Exam 1.x way of doing it.

EagerSingleStagedReactor
Launch a TestContainer per Configuration. This will be re-used across multiple Test Methods.

Milestone 2

Right now i would foucs on the following items for the next Milestone:

  • Get some more people and opinions into it
  • Port more Options from Pax Runner Container to Native Container (currently the latter is very limited)
  • Fix Pax Runner TestContainer regression (see regression-paxrunner module)
  • Start documenting the stable parts. E.g. Screencast?

This is of cause subject of discussion. Help and Comments are welcome!

So far, happy hacking.

Toni

Pax Exam 1.2.2 Released

Pax Exam 1.2.2 has been released!

This is a small bugfix release for the 1.x family and is a recommended replacement for current and new Pax Exam 1.x users.

You can find the detailed releasenotes here

Most important new features is probably the support of Pax Runner 1.5 which brings Felix 3.0.2, Equinox 3.6 and Knopflerfish 3.0.

Artifacts should show up on maven central soon.